Roles de nivel de servidor

SQL Server proporciona roles de nivel de servidor para ayudarle a administrar los permisos de 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).

Los roles fijos de servidor se proporcionan por comodidad y compatibilidad con versiones anteriores. Siempre que sea posible, asigne permisos más específicos.

SQL Server proporciona nueve roles fijos de servidor. Los permisos que se conceden a los roles fijos de servidor no se pueden modificar. A partir de SQL Server 2012, puede crear roles de servidor definidos por el usuario y agregar permisos de nivel de servidor a los roles de servidor definidos por el usuario.

Puede agregar entidades de seguridad a nivel de servidor (inicios de sesión deSQL Server , cuentas de Windows y grupos de Windows) a los roles de 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 de servidor definidos por el usuario no pueden agregar otras entidades de seguridad de servidor al rol.

Roles fijos de nivel de servidor

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.
serveradmin Los miembros del rol fijo de servidor serveradmin pueden cambiar las 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. Administran los permisos de servidor GRANT, DENY y REVOKE. También pueden administrar los permisos de nivel de base de datos GRANT, DENY y REVOKE si tienen acceso a una base de datos. Asimismo, pueden restablecer contraseñas para inicios de sesión de SQL Server .

** Nota de seguridad ** La capacidad de conceder acceso al motor de base de datos y configurar permisos de usuario permite al administrador de seguridad asignar la mayoría de los permisos de servidor. El securityadmin rol debe tratarse como equivalente al sysadmin rol.
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. (Es necesaria la pertenencia a sysadmin cuando se usa Management Studio).
bulkadmin Los miembros del rol fijo de servidor bulkadmin pueden ejecutar la instrucción 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 sesión de SQL Server pertenece al rol de 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ública para ese elemento. Solo asigne los permisos públicos en cualquier objeto cuando desee que el objeto esté disponible para todos los usuarios. No puede cambiar la pertenencia en public.

Nota: public se implementa de manera diferente que otros roles. Pero se pueden conceder, denegar o revocar permisos desde public.

Permisos de los roles fijos de servidor

Cada rol fijo de servidor cuenta con diversos permisos asignados. Para obtener un gráfico de los permisos asignados a los roles del servidor, vea Database Engine Fixed Server and Fixed Database Roles.

Importante

El permiso CONTROL SERVER es similar, pero no idéntico al rol fijo de servidor sysadmin. Los permisos no conllevan la pertenencia a los roles y la pertenencia a los roles no otorga permisos. (Por ejemplo, CONTROL SERVER no implica la pertenencia al sysadmin rol fijo de servidor). Sin embargo, a veces es posible suplantar entre roles y permisos equivalentes. La mayoría de los comandos DBCC y muchos procedimientos del sistema necesitan pertenencia al rol fijo de servidor sysadmin. Para obtener una lista de los procedimientos almacenados del sistema 171 que requieren sysadmin pertenencia, consulte la siguiente entrada de blog de Andreas Wolter CONTROL SERVER frente a sysadmin/sa: permisos, procedimientos del sistema, DBCC, creación automática de esquemas y escalación de privilegios: advertencias.

Permisos de 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 obtener más información sobre los 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 (Transact-SQL) Metadatos Devuelve una lista de roles de nivel de servidor.
sp_helpsrvrolemember (Transact-SQL) Metadatos Devuelve información acerca de los miembros de un rol de nivel de servidor.
sp_srvrolepermission (Transact-SQL) Metadatos Muestra los permisos de un rol de nivel de servidor.
IS_SRVROLEMEMBER (Transact-SQL) Metadatos Indica si un inicio de sesión de SQL Server es miembro del rol de nivel de servidor especificado.
sys.server_role_members (Transact-SQL) Metadatos Devuelve una fila por cada miembro de cada rol de nivel de servidor.
sp_addsrvrolemember (Transact-SQL) Get-Help Agrega un inicio de sesión como miembro de un rol de nivel de servidor. En desuso. Utilice ALTER SERVER ROLE en su lugar.
sp_dropsrvrolemember (Transact-SQL) Get-Help Quita un inicio de sesión de SQL Server o un usuario o grupo de Windows de un rol de nivel de servidor. En desuso. Utilice ALTER SERVER ROLE en su lugar.
CREATE SERVER ROLE (Transact-SQL) Get-Help Crea un rol de servidor definido por el usuario.
ALTER SERVER ROLE (Transact-SQL) Get-Help Cambia la pertenencia de un rol de servidor o cambia el nombre de un rol de servidor definido por el usuario.
DROP SERVER ROLE (Transact-SQL) Get-Help Quita un rol de servidor definido por el usuario.
IS_SRVROLEMEMBER (Transact-SQL) Función Determina la pertenencia del rol de servidor.

Consulte también

Roles de nivel de base de datos
Vistas de catálogo de seguridad (Transact-SQL)
Funciones de seguridad (Transact-SQL)
Proteger SQL Server
GRANT (permisos de entidad de seguridad de servidor de Transact-SQL)
REVOKE (permisos de entidad de seguridad de servidor de Transact-SQL)
DENY (permisos de entidad de seguridad de servidor de Transact-SQL)
Crear un rol de servidor