Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos
La proteccin de la informacin (controlar el acceso a los datos de una organizacin) se parece mucho a la
proteccin de una estructura fsica. Por ejemplo, imagine que tiene su propio negocio y el edificio que lo
alberga tambin es de su propiedad no querr que el pblico en general pueda acceder al edificio; solo
deberan tener acceso los empleados. Sin embargo, tambin necesita restricciones para las zonas a las que
los empleados pueden acceder, porque solo los contables deberan tener acceso al departamento de
contabilidad y casi nadie debera tener acceso a su despacho; debe instalar diversos sistemas de seguridad.
La proteccin de SQL Server (su edificio) se basa en este concepto; nadie puede entrar a menos que se le
conceda acceso y, una vez que los usuarios estn dentro, los diferentes sistemas de seguridad mantienen
las areas confidenciales a salvo de miradas indiscretas.
Autenticacin y Autorizacin
Usuarios y Esquemas
1
3. Role de la BD
4. Role de una aplicacin
Inicios de sesin (Login): Un login es la habilidad de utilizar una instancia del Servidor SQL, est asociado
con un usuario de Windows o con un usuario de SQL. Son autenticados contra SQL Server por lo tanto son
los accesos al servidor, pero esto no quiere decir que puedan acceder a las bases de datos o a otros
objetos. Para poder acceder a cada una de las bases de datos se necesita de un usuario (user).
El usuario de la base de datos es la identidad del inicio de sesin cuando est conectado a una base de
datos. El usuario de la base de datos puede utilizar el mismo nombre que el inicio de sesin, pero no es
necesario.
Los Logins son asignados a los usuarios
Los grants se les asignan a los usuarios.
A los usuarios se le asignan sus propios Esquemas(schemas)
Information_schema
Permite ver los metadatos de SQL Server
sys
Permite consultar las tablas y vistas del sistema, procedimientos extendidos y otros objetos del catlogo del
sistema
Da acceso a la base de datos, pero esto tampoco quiere decir que pueda hacer cualquier operacin sobre la
base de datos, en principio no puede hacer casi nada, salvo que se le vaya asignando roles y otros
privilegios para darle permisos de acceso a los objetos de esa base de datos.
Roles:
A nivel de Instancia
Los logins pueden ser otorgados roles llamados server roles.
No se pueden crear Roles nuevos
2
A nivel de Base de Datos
Los usuarios de base de datos pueden ser otorgados roles.
Se pueden crear roles nuevos.
Autenticacin
Qu es Autenticacin?
Es bsicamente el proceso de determinar que alguien es realmente quien dice ser.
Soy miembro de
ID(s)
Grupos o Roles?
Secundarios
Quin me verifico?
Authenticator
3
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 quin tiene acceso al servidor y
quin no, y adems gestionamos que roles va a desempear. Para que alguien pueda acceder al servidor
debe tener un inicio de sesin (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.
Anlogamente, 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.
Usuarios de BD y esquemas
Coleccin de objetos de la BBDD cuyo propietario es un nico principal y forma un nico espacio de
nombres ( conjunto de objetos que no pueden tener nombres duplicados)
servidor.basededatos.esquema.objeto
4
Los objetos ahora pertenecen al esquema de forma independiente al usuario
Beneficios:
El borrado de un usuario no requiere que tengamos que renombrar los objetos
Resolucin de nombres uniforme
Gestin de permisos a nivel de esquema
CREATE SHEMA
Crea un esquema en la base de datos actual. La transaccin CREATE SCHEMA tambin puede crear tablas y
vistas dentro del nuevo esquema, as como establecer la autorizacin, denegacin o revocacin (GRANT,
DENY o REVOKE) de permisos en esos objetos.
Sintaxis:
Sintaxis:
CREATE LOGIN nombre_login
WITH PASSWORD = 'clave_usuario';
5
No se puede accesar a la base de datos, con la cual queremos trabajar.
Para poder tener acceso a las bases de datos primero debemos crear los USUARIOS de BASES DE DATOS,
para la creacin de usuarios de las bases de datos nos ayudaremos del siguiente cdigo.
Sintaxis:
USE BASE_DE_DATOS;
GRANT SELECT
ON SCHEMA :: RecursosHumanos
TO JuanPerez
WITH GRANT OPTION
GO
Si nos conectamos con el inicio de sesin Director_RH, observamos las siguientes tablas en la base de datos
Northwind:
6
Si hacemos un SELECT a la tabla Empleado, podemos obtener la informacin almacenada en esa tabla, pero
si hacemos un INSERT a la tabla, nos mostrara un mensaje de error indicando que no se tiene permisos de
agregar datos a la tabla.
En conclusin: Como se puede apreciar el usuario efectivamente puede realizar un SELECT, pero no podr
el usuario realizar un DELETE o un INSERT o un UPDATE ya que solamente hemos asignado el permiso
SELECT al usuario de la BD.
Esto sera como deshacer la otorgacin del permiso, para esto se utiliza la palabra REVOKE que significa
revocar o quitar.
REVOKE SELECT
ON SCHEMA :: RecursosHumanos
TO JuanPerez CASCADE
GO
III. Requerimientos
IV. Procedimiento
7
Para conectarse con el servidor de base de datos elija los siguientes parmetros de autenticacin:
Login: sa
Password: 123456
8
4. Agregar datos a la base de datos
Parte 3: Creacin de inicio de sesin con SQL Management Studio y Transact SQL
1. En SQL Server Management Studio, abra el Explorador de objetos y expanda la carpeta que tiene el
nombre del servidor.
2. Haga clic derecho en la carpeta Seguridad (Security), seleccione Nuevo (New) y, a continuacin,
Inicio de sesin (Login).
9
3. En la pgina General,
escriba un nombre para
el nuevo inicio de sesin
en el cuadro Nombre de
inicio de sesin, para
este caso su carnet
4. Seleccione Autenticacin
de SQL Server.
6. Desmarque la opcin de
Exigir directivas de
contrasea (Enforce
password policy), no es
recomendable hacerlo,
pero para efectos de
prctica lo haremos.
7. Selecciona en base de
datos predeterminada
(Default database), la
base de datos
Alumnos_Carnet
1. Utilizando Interfaz:
a. Expanda la carpeta seguridad
b. Busque el inicio de sesin que desea eliminar
c. Haga clic derecho
d. Seleccione eliminar
2. Utilizando Transact-SQL
Nota: utilice cualquiera de las dos opciones anteriores para eliminar el login guia13Carnet
10
Parte 4. Creacin de usuarios de base de datos
1. Conectarse al servidor de SQL Server para colocar el inicio de sesin que acabamos de crear
2. Digitar el nombre de Login y contrasea y mostrar un mensaje de error el cual indica que no se
tiene acceso a la base de datos, para tener acceso debemos crear usuarios de BD.
3. Expandir la base de datos en la que se quiere crear el usuario, en esta prctica ser
Alumnos_Carnet
4. En la carpeta Seguridad (Security), seleccionar la carpeta usuarios (Users), clic derecho y nuevo
usuario (New User)
6. Luego dar clic en los puntos suspensivos al lado de Nombre de inicio de sesin (Login name), para
asociar el nombre de usuario a un Inicio de sesin existente
11
Esto quiere decir que cuando alguien inicie su sesin, se activarn las cuentas de la Base de Datos
asociadas a este login.
8. En la parte Esquemas propiedad de este usuario (Shemas owned by this user), seleccionamos el
esquema que deseamos que el usuario pueda tener acceso y control sobre l, que tambin seria
alumno
12
10. Ahora accedemos con el inicio de sesin que creamos para que se active el usuario de base de
datos.
11. Hacer doble clic en cualquier base de datos, diferente a la de Alumnos_Carnet, y se mostrar el
siguiente mensaje
12. Expandimos la base de datos Alumnos_Carnet y verificamos a que tablas tenemos acceso
13. Si queremos acceder a la tabla Notas con una instruccin SELECT, SQL Server nos mandara el
siguiente mensaje de error.
13
Parte 5. Asignacin de permisos
5. Ahora en la carpeta seguridad de la base de datos Alumnos_Carnet, dar doble clic sobre el usuario
de base de datos que se cre anteriormente, en la parte izquierda de la pantalla seleccionamos la
opcin Securables
14
7. Y nos aparecer la siguiente ventana
Si seleccionamos la opcin:
Objetos especficos (Specific objects): crearemos permisos para uno o varios objetos de SQL el usuario
tiene la oportunidad de agregar los objetos de su preferencia.
Todos los objetos de los tipos (All objects of the types): se seleccionaran todos los tipos de objetos, es
decir si selecciona el objeto tabla, se seleccionaran todas las tablas que contenga la BD
Todos los objetos que pertenecen al esquema (All objects belonging to the schema): podr seleccionar los
objetos que pertenezcan a un esquema en especfico.
8. En esta ocasin el ejercicio es solo asignar ciertos permisos a la tabla que acabamos de crear, como
solo queremos una tabla seleccionamos la primera opcin, objetos especficos (Specific Objects),
en la ventana damos clic en Tipos de objeto (Object Types) y seleccionamos tablas (Tables).
9. Damos clic en aceptar (Ok) y ahora damos clic al botn examinar (Browse) para buscar las tablas
existentes en la base de datos
15
10. Seleccionamos la tabla Materias
11. Hacer clic en aceptar (Ok), y nos encontraremos con la siguiente pantalla en la cual marcamos las
casillas de UPDATE y SELECT, lo que quiere decir que el usuario solo podr hacer consultas y
actualizar datos.
16
13. Conctese de nuevo al servidor e ingrese con el inicio de sesin que creo anteriormente para ver
probar los permisos en esa tabla.
14. Observe que ahora le aparecen las dos tablas alumnos y materias
Por qu?
En los ejercicios anteriores, un usuario de base de datos poda realizar consultas y actualizaciones de datos,
ahora haremos que ese usuario de base de datos tenga el permiso para crear tablas las cuales quedaran en
el esquema que se le predetermino cuando se estaba creando.
17
5. En la parte izquierda dar clic en la pgina de permisos (Permissions), y luego dar clic en la parte
donde dice Ver permisos de base de datos (View database permissions)
6. En la seccin de permisos explcitos que se encuentra en la parte de abajo, seleccionar los permisos
que deseamos que posea el usuario, en este ejercicio agregamos el permiso para creacin de tablas
y procedimientos, de clic en la casilla conceder a la par del permiso Create procedure y Create
table
7. Probar permisos, ingresar a SQL Server con el login que creo en esta prctica, ejecute las siguientes
instrucciones en la ventana de consultas.
18
Pudo crearlo, por qu?
8. Cree de nuevo la vista con el usuario que creo en la prctica Se pudo crear s, no y porque?
19