Roles de nivel de base de datos

 

ESTE TEMA SE APLICA A: síSQL Server (a partir de 2008)síBase de datos SQL de AzuresíAlmacenamiento de datos SQL de Azure síAlmacenamiento de datos paralelos

Para administrar con facilidad los permisos en las bases de datos, SQL Server proporciona varios roles , que son las entidades de seguridad que agrupan a otras entidades de seguridad. Son como los grupos del sistema operativo Microsoft Windows. Los roles de nivel de base de datos se aplican a toda la base de datos en lo que respecta a su ámbito de permisos.

Para agregar y quitar usuarios en un rol de base de datos, use las opciones ADD MEMBER y DROP MEMBER de la instrucción ALTER ROLE. Almacenamiento de datos paralelos no admite este uso de ALTER ROLE. En su lugar, use los procedimientos sp_addrolemember y sp_droprolemember anteriores.

Existen dos tipos de roles en el nivel de base de datos: los roles fijos de base de datos que están predefinidos en la base de datos y los roles de base de datos definidos por el usuario que el usuario puede crear.

Los roles fijos de base de datos se definen en el nivel de base de datos y existen en cada una de ellas. Los miembros de los roles de base de datos db_owner pueden administrar la pertenencia a roles fijos de base de datos. También hay algunos roles de base de datos con fines especiales en la base de datos msdb.

Puede agregar cualquier cuenta de la base de datos y otros roles de SQL Server a los roles de nivel de base de datos. Cada miembro de un rol fijo de base de datos puede agregar otros usuarios a ese mismo rol.

System_CAPS_ICON_tip.jpg Sugerencia


No agregue roles de base de datos definidos por el usuario como miembros de los roles fijos. Esto podría habilitar un aumento de privilegios no deseado.

Los permisos de los roles de base de datos definidos por el usuario se pueden personalizar con las instrucciones GRANT, DENY y REVOKE. Para más información, consulte Permisos (motor de base de datos).

Para una lista de todos los permisos, consulte el póster Permisos del motor de base de datos. (Los permisos a nivel de servidor no se pueden conceder a los roles de base de datos. Los inicios de sesión y otras entidades de seguridad a nivel de servidor [como roles de servidor] no se pueden agregar a los roles de base de datos. Para la seguridad a nivel de servidor en SQL Server, use en su lugar roles de servidor. Los permisos a nivel de servidor no se pueden conceder a través de roles en Base de datos SQL y Almacenamiento de datos SQL).

En la tabla siguiente se muestran los roles fijos de base de datos y sus funcionalidades. Estos roles existen en todas las bases de datos. No se pueden cambiar los permisos asignados a los roles fijos de base de datos.

Nombre del rol fijo de base de datosDescription
db_ownerLos miembros del rol fijo de base de datos db_owner pueden realizar todas las actividades de configuración y mantenimiento en la base de datos y también pueden quitar la base de datos en SQL Server. (En Base de datos SQL y Almacenamiento de datos SQL, algunas actividades de mantenimiento requieren permisos a nivel de servidor y los roles db_owners no las pueden realizar).
db_securityadminLos miembros del rol fijo de base de datos db_securityadmin pueden modificar la pertenencia a roles y administrar permisos. Si se agregan entidades de seguridad a este rol, podría habilitarse un aumento de privilegios no deseado.
db_accessadminLos miembros del rol fijo de base de datos db_accessadmin pueden agregar o quitar el acceso a la base de datos para inicios de sesión de Windows, grupos de Windows e inicios de sesión de SQL Server .
db_backupoperatorLos miembros del rol fijo de base de datos db_backupoperator pueden crear copias de seguridad de la base de datos.
db_ddladminLos miembros del rol fijo de base de datos db_ddladmin pueden ejecutar cualquier comando del lenguaje de definición de datos (DDL) en una base de datos.
db_datawriterLos miembros del rol fijo de base de datos db_datawriter pueden agregar, eliminar o cambiar datos en todas las tablas de usuario.
db_datareaderLos miembros del rol fijo de base de datos db_datareader pueden leer todos los datos de todas las tablas de usuario.
db_denydatawriterLos miembros del rol fijo de base de datos db_denydatawriter no pueden agregar, modificar ni eliminar datos de tablas de usuario de una base de datos.
db_denydatareaderLos miembros del rol fijo de base de datos db_denydatareader no pueden leer datos de las tablas de usuario dentro de una base de datos.

No se pueden cambiar los permisos asignados a los roles fijos de base de datos. La ilustración siguiente muestra los permisos asignados a los roles fijos de base de datos:

fixed_database_role_permissions

Estos roles de base de datos solo existen en la base de datos maestra virtual. Sus permisos están restringidos a las acciones realizadas en la base de datos maestra. Solo los usuarios de base de datos en la base de datos maestra se pueden agregar a estos roles. Los inicios de sesión no se pueden agregar a estos roles, pero los usuarios se pueden crear basados en inicios de sesión y, luego, esos usuarios se pueden agregar a los roles. Los usuarios de bases de datos independientes en la base de datos maestra también se pueden agregar a estos roles.

Nombre de rolDescription
dbmanagerPuede crear y eliminar bases de datos. Un miembro del rol dbmanager que crea una base de datos se convierte en el propietario de dicha base de datos, lo que permite que el usuario se conecte a ella como el usuario dbo. El usuario dbo tiene todos los permisos de base de datos en la base de datos. Los miembros del rol dbmanager no necesariamente tienen permiso para obtener acceso a las bases de datos que no son de su propiedad.
loginmanagerPuede crear y eliminar inicios de sesión en la base de datos maestra virtual.
System_CAPS_ICON_note.jpg Nota

La entidad de seguridad a nivel de servidor y el administrador de Azure Active Directory (si está configurado) tienen todos los permisos en Base de datos SQL y Almacenamiento de datos SQL sin la necesidad de ser miembros de ninguno de los roles. Para más información, consulte Autorización y autenticación de SQL Database: concesión de acceso.

La base de datos msdb contiene los roles con fines especiales que se muestran en la tabla siguiente.

Nombre de rol de msdbDescription
db_ssisadmin

 db_ssisoperator

 db_ssisltduser
Los miembros de estos roles de base de datos pueden administrar y utilizar SSIS. Las instancias de SQL Server que se actualizan desde una versión anterior podrían contener una versión anterior del rol cuya denominación se realizaba al usar Servicios de transformación de datos (DTS) en lugar de SSIS. Para obtener más información, vea Roles de Integration Services (servicio SSIS).
dc_admin

 dc_operator

 dc_proxy
Los miembros de estos roles de base de datos pueden administrar y utilizar el recopilador de datos. Para obtener más información, consulte Data Collection.
PolicyAdministratorRoleLos miembros del rol de base de datos db_ PolicyAdministratorRole pueden realizar todas las actividades de mantenimiento y configuración en las condiciones y directivas de Administración basada en directivas. Para obtener más información, vea Administrar servidores mediante administración basada en directivas.
ServerGroupAdministratorRole

 ServerGroupReaderRole
Los miembros de estos roles de base de datos pueden administrar y utilizar grupos de servidores registrados.
dbm_monitorSe crea en la base de datos msdb cuando se registra la primera base de datos en el Monitor de creación de reflejo de la base de datos. El rol dbm_monitor no tiene miembros hasta que un administrador del sistema asigna usuarios al rol.
System_CAPS_ICON_important.jpg Importante


Los miembros de los roles db_ssisadmin y dc_admin quizás puedan elevar sus privilegios a sysadmin. Esta elevación de privilegio se puede producir porque estos roles pueden modificar los paquetes de Integration Services y los paquetes de Integration Services los puede ejecutar SQL Server utilizando el contexto de seguridad de sysadmin del Agente SQL Server. Para protegerse contra esta elevación de privilegio al ejecutar planes de mantenimiento, conjuntos de recopilación de datos y otros paquetes de Integration Services , configure los trabajos del Agente SQL Server que ejecutan paquetes para usar una cuenta de proxy con privilegios limitados o agregar solo los miembros de sysadmin a los roles db_ssisadmin y dc_admin .

Se aplica a: SQL Server a partir de SQL Server vNext

Si R Services está instalado, hay roles de base de datos adicionales disponibles para administrar paquetes. Para más información, vea R Package management for SQL Server (Administración de paquetes de R para SQL Server).

Nombre de rolDescription
rpkgs-usersPermite a los usuarios usar cualquier paquete compartido que los miembros del rol rpkgs-shared hayan instalado.
rpkgs-privateProporciona acceso a los paquetes compartidos con los mismos permisos que el rol rpkgs-users. Los miembros de este rol también pueden instalar, quitar y usar paquetes de ámbito privado.
rpkgs-sharedProporciona los mismos permisos que el rol rpkgs-private. Los usuarios que son miembros de este rol también pueden instalar o quitar paquetes compartidos.

En la tabla siguiente se explican los comandos, las vistas y las funciones que se usan para trabajar con los roles de nivel de base de datos.

CaracterísticaTipoDescription
sp_helpdbfixedrole (Transact-SQL)MetadatosDevuelve la lista de los roles fijos de base de datos.
sp_dbfixedrolepermission (Transact-SQL)MetadatosMuestra los permisos de un rol fijo de base de datos.
sp_helprole (Transact-SQL)MetadatosDevuelve información acerca de los roles de la base de datos actual.
sp_helprolemember (Transact-SQL)MetadatosDevuelve información acerca de los miembros de un rol de la base de datos actual.
sys.database_role_members (Transact-SQL)MetadatosDevuelve una fila por cada miembro de cada rol de base de datos.
IS_MEMBER (Transact-SQL)MetadatosIndica si el usuario actual es miembro del grupo de Microsoft Windows o del rol de base de datos de SQL Server especificados.
CREATE ROLE (Transact-SQL)CommandCrea un rol de base de datos nuevo en la base de datos actual.
ALTER ROLE (Transact-SQL)CommandCambia el nombre o la pertenencia de un rol de base de datos.
DROP ROLE (Transact-SQL)CommandQuita un rol de la base de datos.
sp_addrole (Transact-SQL)CommandCrea un rol de base de datos nuevo en la base de datos actual.
sp_droprole (Transact-SQL)CommandQuita un rol de base de datos de la base de datos actual.
sp_addrolemember (Transact-SQL)CommandAgrega un usuario de base de datos, un rol de base de datos, un inicio de sesión de Windows o un grupo de Windows a un rol de base de datos en la base de datos actual. Todas las plataformas, salvo Almacenamiento de datos paralelos, deben usar ALTER ROLE en su lugar.
sp_droprolemember (Transact-SQL)CommandQuita una cuenta de seguridad de un rol de SQL Server de la base de datos actual. Todas las plataformas, salvo Almacenamiento de datos paralelos, deben usar ALTER ROLE en su lugar.
GRANTPermissionsAgrega el permiso a un rol.
DENYPermissionsDeniega un permiso a un rol.
REVOKEPermissionsQuita un permiso concedido o denegado anteriormente.

Todos los usuarios de una base de datos pertenecen al rol de base de datos public s. Cuando a un usuario no se le han concedido ni denegado permisos específicos para un objeto protegible, el usuario hereda los permisos concedidos a la función pública para ese objeto. Los usuarios de base de datos no se pueden quitar del rol public.

Vistas de catálogo de seguridad (Transact-SQL)

Procedimientos almacenados de seguridad (Transact-SQL)

Funciones de seguridad (Transact-SQL)

Proteger SQL Server

sp_helprotect (Transact-SQL)

Adiciones de comunidad

AGREGAR
Mostrar: