Sunteți pe pagina 1din 6

Tema 3 SQL Server. Gestin de la seguridad.

1. Inicios de sesin.
El acceso a SQL Server lo configuramos mediante los inicios de sesin. Para acceder
al servidor de SQL Server, cualquier usuario o programa debe tener un inicio de sesin vlido,
es decir, debe estar dado de alta en el sistema.
Para crear nuevos inicios de sesin debemos conectarnos al servidor con un inicio de
sesin con permisos suficientes y desde la carpeta Seguridad-Inicios de sesin-Nuevo inicio
de sesin gestionamos el alta.
Al crear un nuevo inicio de sesin debemos especificar:
- si ser para un usuario Windows (usuario del sistema operativo) o un usuario SQL Server.
- si pertenece a algn rol de servidor.
- si tiene acceso a las bases de datos creadas y qu tipo de permisos tiene sobre ellas.
- si tiene acceso a determinados objetos del sistema (tablas, vistas, ).
- si tiene permiso de conexin al servidor y si su cuenta est habilitada o no.
2. Permisos.
La gestin de permisos puede hacerse grficamente o bien mediante la ejecucin de
rdenes SQL (grant, revoke, deny) y llamadas a procedimientos almacenados. En cualquiera
de los casos pueden gestionarse a nivel de objeto, a nivel de instruccin o bien mediante la
pertenencia a funciones, tambin llamadas roles.
2.1. Permisos de objeto.
En SQL Server es posible otorgar permisos sobre cualquier objeto (tabla, vista,
procedimiento almacenado, etc.). Podemos asignar permisos para objetos concretos, para
todos los objetos de un tipo concreto o para todos los objetos de un esquema.
A nivel de servidor podemos otorgar permisos para servidores, inicios de sesin y funciones.
A nivel de base de datos para funciones de aplicacin, ensamblados, certificados, funciones de
base de datos, funciones, esquemas, procedimientos almacenados, tipos de datos definidos
por el usuario, usuarios, tablas y vistas.
Para gestionar estos permisos nos situamos sobre el objeto, Propiedades-Permisos y
buscamos el usuario en la base de datos y le asociamos el permiso. Tambin podemos
seleccionar el usuario dentro de la base de datos, y dentro de Elementos protegibles buscamos
el objeto y asignamos los permisos correspondientes.
2.2. Permisos de instruccin.
Los permisos de instruccin controlan las acciones de administracin, como la creacin
de una base de datos o la inclusin de objetos en sta. Solo los propietarios de la base de
datos y los miembros de la funcin de base de datos sysadmin pueden asignar estos permisos.
Por defecto, a los accesos normales no se les conceden permisos de instruccin. Por ejemplo,
si un usuario tiene que crear vistas en una base de datos tendr que asignrsele el permiso
CRETE VIEW.
Algunos permisos sobre instrucciones: crear cualquier base de datos, crear tabla, crear
vista, crear procedimiento.

Para gestionar estos permisos debemos situarnos en el objeto al que afectan y


seleccionar Propiedades-Pemisos. As, si queremos otorgar el permiso de Crear Bases de
datos, deberemos seleccionar el servidor-Propiedades-Permisos, buscar el inicio de sesin y
concederle el permiso requerido. Si queremos otorgar el permiso Create Table, elegimos la
base de datos-Propiedades-Permisos, agregamos el usuario y asignamos los permisos
pertinentes.
2.3. Permisos implcitos.
Los permisos implcitos son aquellos que se obtienen por la pertenencia a roles o
funciones. Slo los miembros de las funciones de sistema predefinidas o los propietarios de
base de datos o de objetos cuentan con permisos implcitos. Los permisos implcitos de una
funcin no se pueden modificar.
3. Funciones.
3.1. De servidor.
Para administrar con facilidad los permisos en el servidor, SQL Server proporciona
varios roles o funciones. Los roles a nivel de servidor se aplican a todo el servidor y son fijos,
es decir, no podemos ni modificarlos ni crear roles nuevos.
Para acceder a estos roles seleccionamos la carpeta Seguridad a nivel de servidor y dentro de
ella Roles de servidor. Desde aqu seleccionamos el rol y le asignamos los inicios de sesin
que deseamos que pertenezcan al mismo.
Los roles son:
- sysadmin. Los miembros del rol fijo de servidor sysadmin pueden realizar cualquier actividad
en el servidor.
- serveradmin. Los miembros del rol fijo de servidor serveradmin pueden cambiar las opciones
de configuracin en el servidor y cerrar el servidor.
- securityadmin. Los miembros del rol fijo de servidor securityadmin administran los inicios de
sesin y sus propiedades. Administran los permisos de servidor GRANT, DENY y REVOKE.
Tambin administran los permisos de base de datos GRANT, DENY y REVOKE. Asimismo,
pueden restablecer las contraseas para los inicios de sesin de SQL Server.
- processadmin. Los miembros del rol fijo de servidor processadmin pueden finalizar los
procesos que se ejecutan en una instancia de SQL Server.
- setupadmin. Los miembros del rol fijo de servidor setupadmin pueden agregar y quitar los
servidores vinculados.
- bulkadmin. Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instruccin
BULK INSERT.
- diskadmin. El rol fijo de servidor diskadmin se utiliza para administrar archivos de disco.
- dbcreator. Los miembros del rol fijo de servidor dbcreator pueden crear, modificar, quitar y
restaurar cualquier base de datos.
- public. Cada inicio de sesin de SQL Server pertenece al rol pblico de servidor. Cuando a
una entidad de seguridad de servidor no se le han concedido ni denegado permisos especficos
para un objeto protegible, el usuario hereda los permisos concedidos al rol pblica para ese

elemento. Solo asigne los permisos pblicos en cualquier objeto cuando desee que el objeto
est disponible para todos los usuarios.
3.2. De base de datos.
Para administrar con facilidad los permisos en las bases de datos, SQL Server
proporciona varias funciones. Las funciones del nivel de base de datos se aplican a toda la
base de datos en lo que respecta a su mbito de permisos.
Existen tres tipos de funciones de nivel de base de datos en SQL Server: funciones fijas
de base de datos, funciones flexibles de base de datos que pueden crearse, funciones de
aplicacin que se utilizan para que determinadas aplicaciones se conecten al servidor. Por
ejemplo, un usuario puede conectarse a travs de una aplicacin, la cual activara la funcin.
De esta forma al usuario se le conceden los permisos y privilegios de la funcin.
Las funciones:
- db_owner. Los miembros de la funcin de base de datos fija db_owner pueden realizar todas
las actividades de configuracin y mantenimiento en la base de datos y tambin pueden quitar
la base de datos.
- db_securityadmin. Los miembros de la funcin de base de datos fija db_securityadmin
pueden modificar la pertenencia a funciones y administrar permisos. Si se agregan entidades
de seguridad a esta funcin, podra habilitarse un aumento de privilegios no deseado.
- db_accessadmin. Los miembros de la funcin de base de datos fija db_accessadmin pueden
agregar o quitar el acceso a la base de datos para inicios de sesin de Windows, grupos de
Windows e inicios de sesin de SQL Server.
- db_backupoperator. Los miembros de la funcin de base de datos fija db_backupoperator
pueden crear copias de seguridad de la base de datos..
- db_ddladmin. Los miembros de la funcin de base de datos fija db_ddladmin pueden
ejecutar cualquier comando del lenguaje de definicin de datos (DDL) en una base de datos..
- db_datawriter. Los miembros de la funcin de base de datos fija db_datawriter pueden
agregar, eliminar o cambiar datos en todas las tablas de usuario.
- db_datareader. Los miembros de la funcin de base de datos fija db_datareader pueden leer
todos los datos de todas las tablas de usuario.
- db_denydatawriter. Los miembros de la funcin de base de datos fija db_denydatawriter no
pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos.
- db_denydatawriter. Los miembros de la funcin de base de datos fija db_denydatareader no
pueden leer datos de las tablas de usuario dentro de una base de datos.
Estos permisos se gestionan seleccionando la funcin desde la base de datos, carpeta
Seguridad-Roles-Roles de base de datos o Roles de aplicacin. Una vez seleccionada se
aaden los usuarios de la base de datos que heredarn sus permisos.
Podemos crear nuevas funciones para agilizar la gestin de permisos.

Ejercicios 1. Teora.
1. Define Inicio de sesin.
2. Captura la pantalla desde la que se crean nuevos inicios de sesin.
3. Comenta las acciones con que estn relacionadas estas capturas.

4. Diferencias entre usuario con autenticacin Windows y SQL Server.


5. Pon ejemplos de permisos que se asignan:
a. A nivel de objeto.
b. A nivel de instruccin.
c. Por la pertenencia a funciones roles.
6. Cul es la misin del rol de servidor PUBLIC?
7. Podemos crear nuevas funciones/roles de servidor? Y de base de datos?

8. Prueba. Otorga a un usuario el permiso de Select sobre una tabla y hazlo miembro de la
funcin db_denydatareader. Qu prevalece?
9. Si un usuario est asignado al rol o funcin db_ddladmin de una base de datos
puede Escribe Verdadero o falso.
a. Crear vistas en su esquema predeterminado.
b. Crear vistas en el esquema dbo.
c. Podr crear tablas en su esquema predeterminado.
d. Podr eliminar tablas de su esquema predeterminado.

Ejercicio 2. Base de datos Cursos.


1. Descarga la base de datos desde la carpeta compartida en Google Drive y adjntala a
tu servidor.
2. Crea un diagrama y estudia sus tablas y relaciones.
3. Da de alta en el servidor a los inicios de sesin de Sql Server user1, user2, user3 y
user4. Con estas caractersticas.
a. Base de datos predeterminada: Cursos.
b. Permitir conexin al servidor (salvo a user3).
c. Conexin habilitada.
4. Para user1.
a. Concede permisos para que lea datos de todas las tablas.
b. Si lo haces miembro de db_datareader, podr leer datos de tablas nuevas?
5. Para user2.
a. Podr leer datos de cursos y ediciones.
b. Podr insertar filas en cursos y ediciones.
c. Podr actualizar el precio de los cursos.
d. Podr crear nuevas tablas en la base de datos. Para que pueda hacer esto
debes otorgarle el permiso Crear Tablas en la base de datos y Modificar sobre el
esquema que contiene la tabla.
e. Prueba la creacin/modificacin de tablas siendo user2.
6. Para user3.
a. Permite su conexin.
b. Podr leer datos de todas las tablas y slo modificar las filas de Cursos
siempre que sean de informtica.
Ejercicio 3. Base de datos Cursos.
1.
2.
3.
4.
5.

Crea un nuevo esquema en la base de datos, llmalo datos.


Asigna a user1, user2 y user3 este esquema como predeterminado.
Crea una funcin nueva de base de datos y hazla propietaria del esquema Datos.
Haz a los tres usuarios miembros de esta funcin.
Pueden los usuarios (user1, user2 y user3) crear tablas en el esquema datos?

6. Puede user4 crear tablas en este esquema? Qu permisos necesitara para ello?
7. Concede a user4 permiso de Select sobre todos los datos de Alumno excepto los
bancarios (cuenta, entidad y sucursal). Piensa en varias formas de llevar a cabo esta
tarea.
8. Imagina que debes dar de alta a 10 usuarios en la base de datos. Debes adems
concederle Select sobre varias tablas de la misma (no todas), update, insert y delete
tambin sobre algunas tablas, incluso campos de tablas. cul crees que sera la forma
ms rpida de hacerlo?

S-ar putea să vă placă și