Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para administrar fácilmente los permisos de las bases de datos, SQL Server proporciona varios roles, que son principales de seguridad y agrupan otros principales. Son como grupos en el sistema operativo Microsoft Windows. Los roles de nivel de base de datos aplican a toda la base de datos en cuanto a su ámbito de permisos.
Hay dos tipos de roles de nivel de base de datos en SQL Server: roles fijos de base de datos predefinidos en la base de datos y roles de base de datos flexibles que puede crear.
Los roles fijos de base de datos se definen en el nivel de base de datos y existen en cada base de datos. Los miembros del rol de base de datos db_owner pueden administrar la membresía de roles de base de datos fijos. También hay algunos roles fijos de base de datos de uso especial en la base de datos msdb.
Puede agregar cualquier cuenta de base de datos y otros roles de SQL Server a roles a nivel de base de datos. Cada miembro de un rol fijo de base de datos puede agregar otros usuarios a ese mismo rol.
Importante
No añada roles de base de datos flexibles como integrantes de roles fijos. Esto podría habilitar la elevación de privilegios no deseada.
En la tabla siguiente se muestran los roles fijos de nivel de base de datos y sus funcionalidades. Estos roles existen en todas las bases de datos.
| Nombre de rol del nivel de base de datos | Descripción |
|---|---|
| db_owner | Los miembros del rol fijo de base de datos db_owner pueden realizar todas las actividades de configuración y mantenimiento de la base de datos y también pueden quitar la base de datos. |
| db_securityadmin | Los miembros del rol fijo de base de datos db_securityadmin pueden modificar la pertenencia a roles y administrar permisos. Agregar principales a este rol podría habilitar una escalada de privilegios no deseada. |
| db_accessadmin | Los 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 y inicios de sesión de SQL Server. |
| db_backupoperator | Los miembros del rol fijo de base de datos db_backupoperator pueden realizar copias de seguridad de la base de datos. |
| db_ddladmin | Los miembros del rol fijo de base de datos db_ddladmin pueden ejecutar cualquier comando de lenguaje de definición de datos (DDL) en una base de datos. |
| db_datawriter | Los miembros del rol fijo de base de datos db_datawriter pueden agregar, eliminar o cambiar datos en todas las tablas de usuario. |
| db_datareader | Los miembros del rol fijo de base de datos db_datareader pueden leer todos los datos de todas las tablas de usuario. |
| db_denydatawriter | Los miembros del rol fijo de base de datos db_denydatawriter no pueden agregar, modificar ni eliminar datos de las tablas de usuario de una base de datos. |
| db_denydatareader | Los 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. |
Roles de MSDB
La base de datos msdb contiene los roles de propósito especial que se muestran en la tabla siguiente.
| Nombre del rol MSDB | Descripción |
|---|---|
db_ssisadmindb_ssisoperator db_ssisltduser |
Los miembros de estos roles de base de datos pueden administrar y usar SSIS. Las instancias de SQL Server que se actualizan desde una versión anterior pueden contener una versión anterior del rol denominado mediante Data Transformation Services (DTS) en lugar de SSIS. Para obtener más información, consulte Roles de Integration Services (servicio SSIS). |
dc_admindc_operator dc_proxy |
Los miembros de estos roles de base de datos pueden administrar y usar el recopilador de datos. Para obtener más información, consulte Recopilación de datos. |
| PolicyAdministratorRole | Los miembros del rol de base de datos db_ PolicyAdministratorRole pueden realizar todas las actividades de configuración y mantenimiento en las directivas y condiciones de administración basadas en directivas. Para obtener más información, vea Administrar servidores mediante la administración basada en directivas. |
|
ServerGroupAdministratorRole ServerGroupReaderRole |
Los miembros de estos roles de base de datos pueden administrar y usar grupos de servidores registrados. |
| dbm_monitor | Se crea en la msdb base de datos cuando se registra la primera base de datos en el Monitor de Espejo de Base de Datos. El rol dbm_monitor no tiene miembros hasta que un administrador del sistema asigna usuarios al rol. |
Importante
Los miembros del rol de db_ssisadmin y el rol de dc_admin pueden 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 utilizar una cuenta de proxy con privilegios limitados o agregar solo los miembros de sysadmin a los roles dc_admin y db_ssisadmin.
Trabajar con los roles de Database-Level
En la tabla siguiente se explican los comandos, vistas y funciones para trabajar con roles de nivel de base de datos.
| Característica | Tipo | Descripción |
|---|---|---|
| sp_helpdbfixedrole (Transact-SQL) | Metadatos | Devuelve una lista de los roles fijos de base de datos. |
| sp_dbfixedrolepermission (Transact-SQL) | Metadatos | Muestra los permisos de un rol fijo de base de datos. |
| sp_helprole (Transact-SQL) | Metadatos | Devuelve información sobre los roles de la base de datos actual. |
| sp_helprolemember (Transact-SQL) | Metadatos | Devuelve información sobre los miembros de un rol en la base de datos actual. |
| sys.database_role_members (Transact-SQL) | Metadatos | Devuelve una fila para cada miembro de cada rol de base de datos. |
| IS_MEMBER (Transact-SQL) | Metadatos | Indica si el usuario actual es miembro del grupo de Microsoft Windows especificado o del rol de base de datos de Microsoft SQL Server especificado. |
| CREATE ROLE (Transact-SQL) | Comando | Crea un nuevo rol de base de datos en la base de datos actual. |
| ALTER ROLE (Transact-SQL) | Comando | Cambia el nombre de un rol de base de datos. |
| DROP ROLE (Transact-SQL) | Comando | Quita un rol de la base de datos. |
| sp_addrole (Transact-SQL) | Comando | Crea un nuevo rol de base de datos en la base de datos actual. |
| sp_droprole (Transact-SQL) | Comando | Quita un rol de base de datos de la base de datos actual. |
| sp_addrolemember (Transact-SQL) | Comando | Agrega 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. |
| sp_droprolemember (Transact-SQL) | Comando | Quita una cuenta de seguridad de un rol de SQL Server en la base de datos actual. |
rol de base de datos pública
Cada usuario de la base de datos pertenece al rol de bases de datos público. Cuando a un usuario no se le han concedido ni denegado permisos específicos sobre un objeto seguro, el usuario hereda los permisos concedidos al público sobre ese objeto.
Contenido relacionado
Vistas de catálogo de seguridad (Transact-SQL)
Procedimientos almacenados de seguridad (Transact-SQL)