ALTER SERVER ROLE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

Cambia la pertenencia de un rol de servidor o cambia el nombre de un rol de servidor definido por el usuario. No se puede cambiar el nombre de los roles fijos de servidor.

Convenciones de sintaxis de Transact-SQL

Sintaxis

-- Syntax for SQL Server, Azure SQL Database, Azure SQL Managed Instance
  
ALTER SERVER ROLE server_role_name   
{  
    [ ADD MEMBER server_principal ]  
  | [ DROP MEMBER server_principal ]  
  | [ WITH NAME = new_server_role_name ]  
} [ ; ]  
-- Syntax for Parallel Data Warehouse  
  
ALTER SERVER ROLE  server_role_name  ADD MEMBER login;  
  
ALTER SERVER ROLE  server_role_name  DROP MEMBER login;  

Argumentos

server_role_name

Nombre del rol de servidor que se va a cambiar.

ADD MEMBER server_principal

Agrega la entidad de seguridad del servidor especificada al rol de servidor. server_principal puede ser un inicio de sesión o un rol de servidor definido por el usuario. server_principal no puede ser un rol fijo de servidor, un rol de base de datos ni sa.

DROP MEMBER server_principal

Quita la entidad de seguridad del servidor especificada del rol de servidor. server_principal puede ser un inicio de sesión o un rol de servidor definido por el usuario. server_principal no puede ser un rol fijo de servidor, un rol de base de datos ni sa.

WITH NAME =new_server_role_name

Especifica el nuevo nombre del rol de servidor definido por el usuario. Este nombre no puede existir ya en el servidor.

Observaciones

El cambio de nombre de un rol de servidor definido por el usuario no cambia el número de identificación, el propietario ni los permisos del rol.

Para cambiar la pertenencia a roles, ALTER SERVER ROLE reemplaza sp_addsrvrolemember y sp_dropsrvrolemember. Estos procedimientos almacenados están desusados.

Puede ver los roles de servidor si consulta las vistas de catálogo sys.server_role_members y sys.server_principals.

Para cambiar el propietario de un rol de servidor definido por el usuario, utilice ALTER AUTHORIZATION (Transact-SQL).

En Azure SQL Database, ALTER SERVER ROLE debe ejecutarse en la base de datos master.

Permisos

Se necesita el permiso ALTER ANY SERVER ROLE en el servidor para cambiar el nombre de un rol de servidor definido por el usuario.

Roles fijos de servidor

Para agregar un miembro a un rol fijo de servidor, debe ser miembro de ese rol fijo de servidor o del rol fijo de servidor sysadmin.

Nota

Los permisos CONTROL SERVER y ALTER ANY SERVER ROLE no bastan para ejecutar ALTER SERVER ROLE para un rol fijo de servidor y el permiso ALTER no se puede conceder en un rol fijo de servidor.

Roles de servidor definidos por el usuario

Para agregar un miembro a un rol de servidor definido por el usuario, debe ser miembro del rol fijo de servidor sysadmin o disponer de los permisos CONTROL SERVER o ALTER ANY SERVER ROLE. O bien, debe disponer del permiso ALTER en ese rol.

Nota

A diferencia de los roles fijos de servidor, los miembros de un rol de servidor definido por el usuario no disponen inherentemente de permiso para agregar miembros a ese mismo rol.

Ejemplos

A. Cambio de nombre de un servidor

En el siguiente ejemplo se crea un rol de servidor denominado Product y, a continuación, se cambia el nombre del rol de servidor a Production.

CREATE SERVER ROLE Product ;  
ALTER SERVER ROLE Product WITH NAME = Production ;  
GO  

B. Adición de una cuenta de dominio a un rol de servidor

En el siguiente ejemplo se agrega una cuenta de dominio denominada adventure-works\roberto0 al rol de servidor definido por el usuario denominado Production.

ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;  

C. Adición de un inicio de sesión de SQL Server a un rol de servidor

En el siguiente ejemplo se agrega un inicio de sesión de SQL Server denominado Ted al rol fijo de servidor diskadmin.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;  
GO  

D. Eliminación de una cuenta de dominio de un rol de servidor

En el siguiente ejemplo se quita una cuenta de dominio denominada adventure-works\roberto0 del rol de servidor definido por el usuario denominado Production.

ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;  

E. Eliminación de un inicio de sesión de SQL Server de un rol de servidor

En el siguiente ejemplo se quita el inicio de sesión de SQL Server Ted del rol fijo de servidor diskadmin.

ALTER SERVER ROLE Production DROP MEMBER Ted ;  
GO  

F. Concesión a un inicio de sesión el permiso para agregar inicios de sesión a un rol de servidor definido por el usuario

En el siguiente ejemplo se permite a Ted agregar otros inicio de sesión al rol de servidor definido por el usuario denominado Production.

GRANT ALTER ON SERVER ROLE::Production TO Ted ;  
GO  

G. Visualización de la pertenencia a rol

Para ver la pertenencia al rol, utilice la página Rol de servidor (miembros) de SQL Server Management Studio o ejecute la siguiente consulta:

SELECT SRM.role_principal_id, SP.name AS Role_Name,   
SRM.member_principal_id, SP2.name  AS Member_Name  
FROM sys.server_role_members AS SRM  
JOIN sys.server_principals AS SP  
    ON SRM.Role_principal_id = SP.principal_id  
JOIN sys.server_principals AS SP2   
    ON SRM.member_principal_id = SP2.principal_id  
ORDER BY  SP.name,  SP2.name  

Ejemplos: Sistema de la plataforma de análisis (PDW)

H. Adición de un miembro a un rol de servidor

En el siguiente ejemplo se agrega el inicio de sesión Anna al rol fijo de servidor LargeRC.

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

I. Eliminación de un inicio de sesión de una clase de recursos

En el siguiente ejemplo se quita el rol de Ana del rol de servidor LargeRC.

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

Pasos siguientes