sábado, 18 de febrero de 2017

Roles de SQL Server

Trabajando con roles de servidor

SQL Server provee roles de servidor para ayudar a administrar permisos en un servidor. Estos roles son perfiles de seguridad que agrupan  otros perfiles.
Las roles fijos  de servidor se proporcionan para mayor comodidad y compatibilidad con versiones anteriores.  Es mejor asignar permisos más específicos siempre que sea posible.

Roles de SQL Server
Trabajadores, Click para ver más fotos como esta.




SQL Server proporciona nueve roles fijos de servidor. Los permisos que se conceden a los roles fijos de servidor no se pueden cambiar. Desde SQL Server 2012, es posible crear roles  de servidor definidos por el usuario y agregar permisos de nivel de servidor a los roles de servidor definidos por el usuario. Es posible agregar entidades de nivel de servidor (inicios de sesión de SQL Server, cuentas de Windows y grupos de Windows) a roles de nivel de servidor. Cada miembro de un rol fijo de servidor puede agregar otros inicios de sesión a esa misma función. Los miembros de los roles de servidor definidos por el usuario no pueden agregar otros permisos de servidor al rol.


Tabla de roles fijos de servidor


Rol fijo de servidor
Descripción
sysadmin
Pueden realizar cualquier actividad en el servidor.
serveradmin
Pueden cambiar las opciones de configuración de todo el servidor y apagar el servidor.
securityadmin
Gestionan los inicios de sesión y sus propiedades. Pueden conceder, negar y rechazar los permisos a nivel de servidor. También pueden conceder permisos de GRANT, DENY y REVOKE a nivel de base de datos si tienen acceso a una base de datos. Además, pueden restablecer contraseñas para los inicios de sesión de SQL Server.
Nota de seguridad: La posibilidad de conceder acceso al motor de base de datos y configurar permisos de usuario permite al administrador de seguridad asignar la mayor parte de permisos de servidor. El rol securityadmin debe ser tratado como equivalente al rol sysadmin.
processadmin
Pueden finalizar los procesos que se ejecutan en una instancia de SQL Server.
setupadmin
Puede agregar y quitar servidores vinculados mediante instrucciones SQL. (La pertenencia a sysadmin es necesaria cuando se utiliza Management Studio.)
bulkadmin
Pueden ejecutar la instrucción BULK INSERT.
diskadmin
Se utiliza para administrar archivos de disco.
dbcreator
Pueden crear, alterar, eliminar y restaurar cualquier base de datos.
public
Cada inicio de sesión de SQL Server pertenece al rol de servidor public. Cuando un servidor principal no ha concedido o denegado permisos específicos en un objeto, el usuario hereda los permisos concedidos al rol public en ese objeto. Sólo se deben asignar permisos públicos a cualquier objeto cuando se desee que el objeto esté disponible para todos los usuarios. No se puede cambiar la membresía de public.

Nota: el rol public se implementa de manera diferente que otros roles. Sin embargo, los permisos pueden concederse, denegarse o revocarse del rol public.

Niveles de permisos de servidor


Sólo se pueden agregar permisos a nivel de servidor a lor roles de servidor definidos por el usuario. Para enumerar los permisos de nivel de servidor, ejecutar la siguiente instrucción:
SELECT * FROM sys.fn_builtin_permissions ('SERVER') ORDER BY permission_name;
GO

Trabajando con roles de servidor


La tabla siguiente explica los comandos, vistas y funciones que se pueden utilizar para trabajar con roles  de nivel de servidor.

Característica
Tipo
Descripción
Metadatos
Devuelve una lista de roles de nivel de servidor.
Metadatos
Devuelve información sobre los miembros de un rol de nivel de servidor.
Metadatos
Muestra los permisos de un rol de nivel de servidor.
Metadatos
Indica si un inicio de sesión de SQL Server es miembro del rol de nivel de servidor especificado.
Metadatos
Indica si un inicio de sesión de SQL Server es un miembro del rol de nivel de servidor especificado.
Comando
Añade un inicio de sesión como miembro de un rol de nivel de servidor. Obsoleto. Utilizar ALTER SERVER ROLE en su lugar.
Comando
Elimina un inicio de sesión de SQL Server o un usuario o grupo de Windows de una función de nivel de servidor. Obsoleto. Utilizar ALTER SERVER ROLE en su lugar.
Comando
Crea un rol de servidor definido por el usuario.
Comando
Modifica la pertenencia a un rol de servidor o modifica el nombre de un rol de servidor definido por el usuario.
Comando
Elimina un rol de servidor definido por el usuario.
Función
Determina la pertenencia a un rol de servidor.

Trabajando con roles fijos de base de datos

 

Roles de base de datos

  
Para administrar fácilmente los permisos de las bases de datos, SQL Server proporciona varios roles primarios de seguridad que agrupan a otros roles primarios. Son como los grupos del sistema operativo Windows. Los roles  de nivel de base de datos son de toda la base de datos en su ámbito de permisos.
Para agregar y quitar usuarios a un rol de base de datos, hay que utilizar las opciones ADD MEMBER y DROP MEMBER de la instrucción ALTER ROLE.
Existen dos tipos de roles de nivel de base de datos: roles fijos de bases de datos, que viene ya  predefinidos  y roles de base de datos definidos por el usuario.
Las roles fijos se definen en el nivel de base de datos y existen en cada una de ellas. Los miembros del rol de base de datos db_owner pueden administrar la pertenencia a un rol fijo de base de datos.
Cada miembro de un rol fijo de base de datos puede añadir a  otros usuarios a ese mismo rol. No agregar roles definidos por el usuario como miembros de roles fijos. Esto podría llevar a una escalada involuntaria de privilegios.

Los permisos de los roles de base de datos definidos por el usuario sepueden personalizar utilizando las sentencias GRANT, DENY y REVOKE.  (Los permisos de nivel de servidor no se pueden conceder a los roles de base de datos).  

Los inicios de sesión y otros principios de nivel de servidor (como los roles de servidor) no se pueden agregar a los roles de base de datos.

Tabla de roles fijos de base de datos


La tabla siguiente muestra los roles fijos de base de datos y sus atribuciones. Estos roles existen en todas las bases de datos. No se pueden cambiar los permisos asignados a los roles fijos de bases de datos.

Rol fijo de base de datos
Descripción
db_owner
Puede realizar todas las actividades de configuración y mantenimiento en la base de datos y también pueden eliminar la base de datos en SQL Server.
db_securityadmin
Puede modificar la pertenencia a un rol y administrar permisos. La adición de principiantes a este rol podría permitir la escalada de privilegios no deseados.
db_accessadmin
Puede agregar o quitar acceso a la base de datos para los inicios de sesión de Windows, los grupos de Windows y los inicios de sesión de SQL Server.
db_backupoperator
Puede hacer un backup de la base de datos.
db_ddladmin
Puede ejecutar cualquier comando de lenguaje de definición de datos (DDL) en una base de datos.
db_datawriter
Puede agregar, eliminar o cambiar datos en todas las tablas de usuario.
db_datareader
Puede leer todos los datos de todas las tablas de usuario.
db_denydatawriter
No puede agregar, modificar o eliminar datos de las tablas de usuario de una base de datos.
db_denydatareader
No puede leer ningún dato en las tablas de usuario de una base de datos.


No se pueden cambiar los permisos asignados a los roles fijos de base de datos.

Trabajando con roles de nivel de base de datos


La siguiente tabla explica los comandos, vistas y funciones para trabajar con roles de base de datos.


Característica
Tipo
Descripción

Metadatos
Devuelve una lista de los roles fijos de base de datos.

Metadatos
Muestra los permisos de un rol fijo de base de datos.

sp_helprole
Metadatos
Proporciona información sobre los roles de la base de datos.

sp_helprolemember
Metadatos
Muestra los miembros de un rol de la base de datos.

Metadatos
Devuelve una fila para cada miembro de cada rol de base de datos.

IS_MEMBER
Metadatos
Indica si el usuario actual es miembro del grupo de Windows especificado o del rol base de datos.

Comando
Crea un nuevo rol de base de datos.

Comando
Cambia el nombre o la pertenencia de un rol de base de datos.

DROP ROLE
Comando
Elimina un rol  de base de datos.

sp_addrole
Comando
Crea un nuevo rol de base de datos.

sp_droprole
Comando
Elimina un rol  de base de datos.

Comando
Agrega un rol de usuario de base de datos,  un inicio de sesión de Windows o un grupo de Windows a un rol  de base de datos.

Comando
Elimina una cuenta de seguridad de un rol en la base de datos.

Permisos
Proporciona permisos a un rol.

Permisos
Deniega permisos a un rol.

Permisos
Elimina los permisos otorgados o denegados anteriormente.


Función public de la base de datos


Cada usuario de base de datos pertenece al rol de base de datos. Cuando a un usuario no se le han concedido o denegado permisos específicos en un objeto, el usuario hereda los permisos concedidos al rol public en ese objeto. Los usuarios de la base de datos no pueden eliminarse del rol public.


No hay comentarios:

Publicar un comentario