Te presento mi nuevo sitio web: "El Futuro de los Datos"

Aunque SQL Server Si!, seguirá activo, iré bajando la frecuencia de publicación.
Si quieres conocer todas las novedades que vaya publicando, te recomiendo que lo visites y te suscribas. Tengo un regalito para mi audiencia:

Tu primer Dashboard en "piloto automático" listo en 30 minutos
Sólo para suscriptores.
.

20 ene. 2009

Introducción a la Seguridad en SQL Server

Esto es una introducción para todos aquellos que siempre han usado SQL Server con sa (y sin contraseña muchas veces). Antes de entrar en asuntos más complejos es útil distinguir entre usuarios, roles, etc. Esta es la respuesta a un compañero en los grupos de noticias públicos de SQL Server, que quiero compartir con vosotros.

Logins, users, etc

Login: son los accesos al servidor, lo cual no quiere decir que puedan acceder a las bases de datoa que allí hay. Para poder acceder a cada una de las bases de datos necesitas un user.

User: usuario de la base de datos. Da acceso a la base de datos, pero esto tampoco quiere decir que pueda hacer cualquier operación sobre la base de datos, en principio no puede hacer casi nada, salvo que le vayas asignando roles y otros privilegios para darle permisos de acceso a los objetos de esa base de datos.

En SQL Server nos encontramos con tres niveles o capas en los cuales podemos gestionar la seguridad. El primero de ellos se encuentra a nivel de servidor, en él podemos gestionar quién tiene acceso al servidor y quién no, y además gestionamos que roles va a desempeñar. Para que alguien pueda acceder al servidor debe tener un inicio de sesión (login) asignado, y a éste se asignaremos los roles o funciones que puede realizar sobre el servidor.

El que alguien tenga acceso al servidor no quiere decir que pueda acceder a las bases de datos que se encuentran en él. Para ello hay que tener acceso a
la siguiente barrera de seguridad, que es a nivel de base de dato. Para que un login tenga acceso a una base de datos, tenemos que crear en ella un usuario (user). Deberemos crear un usuario en cada una de las bases de datos a las que queramos que acceda un login.

Análogamente, el que un usuario tenga acceso a una base de datos no quiere decir que tenga acceso a todo su contenido, ni a cada uno de los objetos que la componen. Para que esto ocurra tendremos que irle concediendo o denegando permisos sobre cada uno de los objetos que la componen.

A continuación podéis observar un gráfico que refleja este modelo.

image

2 comentarios:

Carlos Javier Cumbe Montesdeoca dijo...

Hola soy Carlos Cumbe Montesdeoca y soy un programador junior. en un aplicacion sql server 2000 instalaron con solo autentificacion. ahora tengo mi base creada ahi, pero deseo que si alguien accede por autentificacion no pueda acceder o no ver mi base
Te agradezco mucho la atencion y si me podrias ayudar con esa consulta muchas gracias

Salvador Ramos dijo...

Hola Carlos Javier,

Para resolución de dudas concretas, te recomiento los foros de SQL Server:
http://social.msdn.microsoft.com/Forums/es-ES/sqlserveres/threads

Allí te podré responder tanto yo, como cualquiera de los que participan.

Un saludo
Salvador Ramos

Google