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.
Se aplica a:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
SQL Server proporciona roles a nivel de servidor para ayudarle a administrar los permisos en un servidor. Estos roles son entidades de seguridad que agrupan otras entidades de seguridad. Los roles de nivel de servidor se aplican a todo el servidor en lo que respecta a su ámbito de permisos. (Losroles son como los grupos del sistema operativo Windows).
SQL Server 2019 (15.x) y versiones anteriores proporcionaron nueve roles fijos de servidor. No puedes cambiar los permisos concedidos a los roles fijos del servidor (excepto los públicos). A partir de SQL Server 2012 (11.x), puede crear roles del servidor definidas por el usuario y agregar permisos de nivel de servidor a los roles del servidor definidos por el usuario.
SQL Server 2022 (16.x) incluye 10 roles adicionales de servidor diseñados específicamente con el Principio de Privilegio Mínimo. Estos roles llevan el prefijo ##MS_ y el sufijo ##, lo que los distingue de los principios creados por el usuario y de los roles de servidor personalizados. Estos nuevos roles incluyen privilegios que se aplican al ámbito del servidor, pero que también pueden heredarse hasta las bases de datos individuales (excepto el rol de servidor ##MS_LoginManager##).
Como sucede con las instancias locales de SQL Server, los permisos de servidor se organizan jerárquicamente. Los permisos que mantienen estos roles de nivel de servidor se pueden propagar a los permisos de base de datos. Para que los permisos sean efectivamente útiles a nivel de base de datos, un usuario debe ser miembro de la función a nivel de servidor ##MS_DatabaseConnector## (a partir de SQL Server 2022 (16.x)), que concede el permiso CONNECT a todas las bases de datos o tener una cuenta de usuario en bases de datos individuales. Este requisito también se aplica a la master base de datos.
Considere el ejemplo siguiente: el rol de nivel de servidor ##MS_ServerStateReader## contiene el permiso VIEW SERVER STATE. Un usuario que es miembro de este rol tiene una cuenta de usuario en las bases de datos master y WideWorldImporters. Este usuario también tiene el permiso VIEW DATABASE STATE en esas dos bases de datos por herencia.
Puede agregar entidades de seguridad a nivel de servidor (inicios de sesión de SQL Server, cuentas de Windows y grupos de Windows) en roles a nivel de servidor. Cada miembro de un rol fijo de servidor puede agregar otros inicios de sesión a ese mismo rol. Los miembros de roles del servidor definidos por el usuario no pueden agregar otras entidades de seguridad del servidor al rol.
Roles fijos de nivel de servidor
Nota:
Estos roles se introdujeron antes de SQL Server 2022 (16.x), y no están disponibles en Azure SQL Database ni en Azure Synapse Analytics. Azure SQL Database tiene sus propios roles a nivel de servidor, que corresponden a los roles introducidos en SQL Server 2022 (16.x). Para más información, consulta roles de servidor de Azure SQL Database para administrar permisos y Autorizar el acceso a la base de datos de SQL Database, SQL Managed Instance y Azure Synapse Analytics.
En la tabla siguiente se muestran los roles fijos de nivel de servidor y sus capacidades.
| Rol fijo de nivel de servidor | Descripción |
|---|---|
| sysadmin | Los miembros del rol fijo de servidor sysadmin pueden realizar cualquier actividad en el servidor. Importante: no se pueden denegar permisos a los miembros de este rol. |
| serveradmin | Los miembros del rol fijo de servidor serveradmin pueden cambiar opciones de configuración en el servidor y cerrar el servidor. |
| securityadmin | Los miembros del rol fijo de servidor securityadmin administran los inicios de sesión y sus propiedades. Pueden administrar los permisos de nivel de servidor GRANT, DENY, y REVOKE. También pueden GRANT, DENY y REVOKE permisos en el nivel de la base de datos si tienen acceso a una base de datos. Además, pueden restablecer las contraseñas de los inicios de sesión en SQL Server.IMPORTANTE: La capacidad de conceder acceso al motor de base de datos y configurar los permisos de usuario permite que el administrador de seguridad asigne la mayoría de los permisos de servidor. Trata el rol de administrador de seguridad como equivalente al de administrador de sistemas . Como alternativa, a partir de SQL Server 2022 (16.x), considere la posibilidad de usar el nuevo rol fijo de servidor ##MS_LoginManager##. |
| 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 servidores vinculados mediante instrucciones Transact-SQL. (para usar Management Studio es necesario ser administrador del sistema). |
| bulkadmin | Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instrucción BULK INSERT. Los miembros de este rol pueden elevar potencialmente sus privilegios en determinadas condiciones. Aplique el principio de privilegios mínimos al asignar este rol y supervise toda la actividad realizada por sus miembros. Ni el rol bulkadmin ni los permisos ADMINISTER BULK OPERATIONS se admiten para SQL Server en Linux.Las operaciones masivas ( BULK INSERT sentencias) no se admiten para inicios de sesión con autenticación de Microsoft Entra, ni en Linux ni en Windows. En este escenario, solo los miembros del rol sysadmin pueden realizar inserciones masivas para SQL Server. |
| diskadmin | Los miembros del rol fijo de servidor diskadmin pueden administrar archivos de disco. |
| dbcreator | Los miembros del rol fijo de servidor dbcreator pueden crear, modificar, quitar y restaurar cualquier base de datos. |
| pública | Cada inicio de sesión de SQL Server pertenece al rol del servidor público. Cuando a una entidad de seguridad de servidor no se le han concedido ni denegado permisos específicos para un objeto protegible, el usuario hereda los permisos concedidos al rol público en ese objeto. Solo asigne permisos públicos en cualquier objeto cuando desee que el objeto esté disponible para todos los usuarios. No se puede cambiar de miembro en público. Nota:el público funciona de forma diferente a los otros roles. Puedes conceder, denegar o revocar permisos para el rol público fijo de servidor. |
Importante
La mayoría de los permisos proporcionados por los siguientes roles de servidor no son aplicables a Azure Synapse Analytics: administrador de procesos, administrador de servidores, administrador de configuración y administrador de discos.
Roles fijos de nivel de servidor presentados en SQL Server 2022
En la tabla siguiente se muestran los roles fijos de nivel de servidor introducidos en SQL Server 2022 (16.x) y sus funcionalidades.
Nota:
Azure SQL Database y Azure SQL Managed Instance soportan estos roles. Azure Synapse Analytics no lo hace.
Para ver qué roles tiene un servidor, consulta en sys.server_principals las filas en las que type_desc es SERVER_ROLE.
| Rol fijo de nivel de servidor | Descripción |
|---|---|
##MS_DatabaseConnector## |
Los miembros del rol fijo de servidor ##MS_DatabaseConnector## pueden conectarse a cualquier base de datos sin requerir una cuenta de usuario en la base de datos para conectarse.Para denegar el permiso CONNECT a una base de datos específica, los usuarios pueden crear una cuenta de usuario coincidente para este inicio de sesión en la base de datos y, a continuación, DENY al permiso CONNECT al usuario de base de datos. Este permiso DENY anula el permiso GRANT CONNECT que proviene de este rol. |
##MS_LoginManager## |
Los miembros del rol fijo de servidor ##MS_LoginManager## pueden crear, eliminar y modificar inicios de sesión. A diferencia del antiguo rol fijo del servidor securityadmin, este rol no otorga privilegios GRANT a sus miembros. Es un rol más limitado que ayuda a cumplir con el Principio del privilegio mínimo. |
##MS_DatabaseManager## |
Los miembros del ##MS_DatabaseManager## rol fijo de servidor pueden crear bases de datos y eliminar bases de datos propias. Un miembro del rol de ##MS_DatabaseManager## que crea una base de datos, se convierte en el propietario de esa base de datos, lo que permite al usuario conectarse a esa base de datos como el usuario dbo. El usuario dbo tiene todos los permisos de base de datos en la base de datos. Los miembros de este rol pueden elevar potencialmente sus privilegios en determinadas condiciones. Aplique el principio de privilegios mínimos al asignar este rol y supervise toda la actividad realizada por sus miembros. En Azure SQL Database, use este rol de servidor en lugar del rol fijo de base de datos dbmanager que existe en master. |
##MS_ServerStateManager## |
Los miembros del rol fijo de servidor ##MS_ServerStateManager## tienen los mismos permisos que el rol de ##MS_ServerStateReader##. El rol también cuenta con el ALTER SERVER STATE permiso, que permite acceder a varias operaciones de gestión, como: DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE ('ALL'), DBCC SQLPERF(). |
##MS_ServerStateReader## |
Los miembros del ##MS_ServerStateReader## rol de servidor fijo pueden leer todas las vistas de gestión dinámica (DMV) y funciones que estén cubiertas por VIEW SERVER STATE. Los miembros también disponen de VIEW DATABASE STATE permisos en cualquier base de datos en la que tengan una cuenta de usuario. |
##MS_ServerPerformanceStateReader## |
Los miembros del ##MS_ServerPerformanceStateReader## rol de servidor fijo pueden leer todas las vistas de gestión dinámica (DMV) y funciones que estén cubiertas por VIEW SERVER PERFORMANCE STATE. Los miembros también tienen permisos VIEW DATABASE PERFORMANCE STATE sobre cualquier base de datos en la que tengan una cuenta de usuario. Este rol es un subconjunto de ##MS_ServerStateReader##, lo que ayuda a cumplir con el Principio del Privilegio Menor. |
##MS_ServerSecurityStateReader## |
Los miembros del ##MS_ServerSecurityStateReader## rol de servidor fijo pueden leer todas las vistas de gestión dinámica (DMV) y funciones que estén cubiertas por VIEW SERVER SECURITY STATE. Los miembros también disponen de VIEW DATABASE SECURITY STATE permiso sobre cualquier base de datos en la que tengan una cuenta de usuario. Este rol es un pequeño subconjunto de ##MS_ServerStateReader##, lo que ayuda a cumplir con el Principio de menor privilegio. |
##MS_DefinitionReader## |
Los miembros del ##MS_DefinitionReader## rol de servidor fijo pueden leer todas las vistas de catálogo que estén cubiertas por VIEW ANY DEFINITION. Los miembros también disponen de VIEW DEFINITION permisos en cualquier base de datos en la que tengan una cuenta de usuario. |
##MS_PerformanceDefinitionReader## |
Los miembros del ##MS_PerformanceDefinitionReader## rol de servidor fijo pueden leer todas las vistas de catálogo que estén cubiertas por VIEW ANY PERFORMANCE DEFINITION. Los miembros también disponen de VIEW PERFORMANCE DEFINITION permiso sobre cualquier base de datos en la que tengan una cuenta de usuario. Este rol es un subconjunto de ##MS_DefinitionReader##. |
##MS_SecurityDefinitionReader## |
Los miembros del ##MS_SecurityDefinitionReader## rol de servidor fijo pueden leer todas las vistas de catálogo que estén cubiertas por VIEW ANY SECURITY DEFINITION. Los miembros también disponen de VIEW SECURITY DEFINITION permiso en cualquier base de datos en la que tengan una cuenta de usuario. Este rol es un pequeño subconjunto de ##MS_DefinitionReader##, lo que ayuda a cumplir con el Principio de menor privilegio. |
Permisos de roles fijos de servidor
Cada rol fijo de servidor cuenta con diversos permisos asignados.
Permisos de los nuevos roles fijos de servidor en SQL Server 2022
En la tabla siguiente se muestran los permisos asignados a los roles de nivel de servidor. También muestra los permisos a nivel de base de datos que se heredan mientras el usuario pueda conectarse a bases de datos individuales.
| Rol fijo de nivel de servidor | Permisos a nivel de servidor | Permisos a nivel de base de datos |
|---|---|---|
##MS_DatabaseConnector## |
- CONNECT ANY DATABASE |
- CONNECT |
##MS_LoginManager## |
- CREATE LOGIN- ALTER ANY LOGIN |
N/D |
##MS_DatabaseManager## |
- CREATE ANY DATABASE- ALTER ANY DATABASE |
- ALTER |
##MS_ServerStateManager## |
- ALTER SERVER STATE- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerStateReader## |
- VIEW SERVER STATE- VIEW SERVER PERFORMANCE STATE- VIEW SERVER SECURITY STATE |
- VIEW DATABASE STATE- VIEW DATABASE PERFORMANCE STATE- VIEW DATABASE SECURITY STATE |
##MS_ServerPerformanceStateReader## |
- VIEW SERVER PERFORMANCE STATE |
- VIEW DATABASE PERFORMANCE STATE |
##MS_ServerSecurityStateReader## |
- VIEW SERVER SECURITY STATE |
- VIEW DATABASE SECURITY STATE |
##MS_DefinitionReader## |
- VIEW ANY DATABASE- VIEW ANY DEFINITION- VIEW ANY PERFORMANCE DEFINITION- VIEW ANY SECURITY DEFINITION |
- VIEW DEFINITION- VIEW PERFORMANCE DEFINITION- VIEW SECURITY DEFINITION |
##MS_PerformanceDefinitionReader## |
- VIEW ANY PERFORMANCE DEFINITION |
- VIEW PERFORMANCE DEFINITION |
##MS_SecurityDefinitionReader## |
- VIEW ANY SECURITY DEFINITION |
- VIEW SECURITY DEFINITION |
Permisos de los roles de servidor para SQL Server 2019 y anteriores
En el gráfico siguiente se muestran los permisos asignados a los roles de servidor heredados (SQL Server 2019 (15.x) y versiones anteriores).
El permiso CONTROL SERVER es similar, pero no idéntico al rol fijo de servidor sysadmin. A las entidades con el permiso CONTROL SERVER se les pueden denegar permisos específicos. Desde una perspectiva de seguridad, considere a las entidades con CONTROL SERVER como idénticas a los miembros de sysadmin (administrador del sistema), debido a varias formas posibles de elevar sus permisos de CONTROL SERVER a sysadmin completo. Varios comandos DBCC y muchos procedimientos del sistema requieren la pertenencia al rol fijo de servidor sysadmin .
Permisos a nivel de servidor
Solo se pueden agregar a los roles de servidor definidos por el usuario los permisos de nivel de servidor. Para obtener una lista de los permisos en el nivel de servidor, ejecute la siguiente instrucción: Los permisos en el nivel de servidor son:
SELECT *
FROM sys.fn_builtin_permissions('SERVER')
ORDER BY permission_name;
Para más información sobre permisos, vea Permisos (Motor de base de datos) y sys.fn_builtin_permissions (Transact-SQL).
Trabajar con roles de nivel de servidor
En la tabla siguiente se explican los comandos, las vistas y las funciones que se pueden utilizar para trabajar con roles de nivel de servidor.
| Característica | Tipo | Descripción |
|---|---|---|
| sp_helpsrvrole | Metadatos | Devuelve una lista de roles de nivel de servidor. |
| sp_helpsrvrolemember | Metadatos | Devuelve información acerca de los miembros de un rol de nivel de servidor. |
| sp_srvrolepermission | Metadatos | Muestra los permisos de un rol de nivel de servidor. |
| IS_SRVROLEMEMBER | Metadatos | Indica si un inicio de sesión de SQL Server es miembro del rol especificado a nivel de servidor. |
| sys.server_role_members | Metadatos | Devuelve una fila por cada miembro de cada rol de nivel de servidor. |
| CREATE SERVER ROLE | Comando | Crea un rol de servidor definido por el usuario. |
| ALTER SERVER ROLE | Comando | Cambia la pertenencia de un rol de servidor o cambia el nombre de un rol de servidor definido por el usuario. |
| DROP SERVER ROLE | Comando | Quita un rol de servidor definido por el usuario. |
| sp_addsrvrolemember | Comando | Agrega una cuenta de usuario como miembro de un rol a nivel de servidor. En desuso. Utilice ALTER SERVER ROLE en su lugar. |
| sp_dropsrvrolemember | Comando | Quita un inicio de sesión de SQL Server o a un usuario o grupo de Windows de un rol a nivel de servidor. En desuso. Utilice ALTER SERVER ROLE en su lugar. |
Roles específicos de SQL Server habilitados por Azure Arc
Al instalar la extensión Azure para SQL Server en modo sin privilegios mínimos, la instalación:
- Crea un rol de nivel de servidor:
SQLArcExtensionServerRole - Crea un rol de nivel de base de datos:
SQLArcExtensionUserRole - Agrega la
NT AUTHORITY\SYSTEMcuenta a cada rol - Mapeos
NT AUTHORITY\SYSTEMa nivel de base de datos para cada base de datos - Concede los permisos mínimos para las características habilitadas
Como alternativa, puede configurar SQL Server habilitado por Azure Arc para funcionar en modo de privilegios mínimos. Para obtener más información, consulte Operate SQL Server habilitado por Azure Arc con privilegios mínimos.
Además, Azure extensión para SQL Server revoca los permisos de estos roles cuando ya no son necesarios para características específicas.
Nota:
Las acciones descritas anteriormente requieren que el implementador se conecte a SQL Server como NT AUTHORITY\SYSTEM. Si al inicio de sesión de NT AUTHORITY\SYSTEM se le quita, deshabilita o deniega el permiso CONNECT SQL, el implementador no puede realizar ninguna de estas acciones y la extensión de Azure para SQL Server no se puede aprovisionar. Consulte Requisitos previos para conocer los pasos para comprobar y restaurar este inicio de sesión.
SqlServerExtensionPermissionProvider es una tarea de Windows. Ejecuta Deployer.exe para conceder o revocar privilegios en SQL Server cuando detecta:
- Que se ha instalado una nueva instancia de SQL Server en el host.
- Se desinstala una instancia de SQL Server del host.
- Una característica de nivel de instancia está habilitada o deshabilitada, o se actualiza la configuración.
- Se reinicia el servicio de extensión.
- Los permisos Just-In-Time (JIT) están habilitados o deshabilitados
Nota:
Antes de la versión de julio de 2024, SqlServerExtensionPermissionProvider era una tarea programada que se ejecutó cada hora.
Para obtener más información, revise Configurar las cuentas de servicio y los permisos de la extensión de Azure para SQL Server en Windows.
Si desinstala la Extensión de Azure para SQL Server, se quitan los roles a nivel de servidor y de base de datos.
Para obtener permisos, revise Permisos.
Contenido relacionado
- Roles de nivel de base de datos
- Vistas de catálogo de seguridad (Transact-SQL)
- Funciones de seguridad (Transact-SQL)
- Asegurar SQL Server
- GRANT Permisos de entidad de servidor(Transact-SQL)
- REVOKE Permisos de entidad de servidor(Transact-SQL)
- DENY Permisos de entidad de servidor(Transact-SQL)
- Crear un rol de servidor
- Roles del servidor de Azure SQL Database para la administración de permisos