ALTER SERVER ROLE (Transact-SQL)

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.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

ALTER SERVER ROLE server_role_name 
{
    [ ADD MEMBER server_principal ]
  | [ DROP MEMBER server_principal ]
  | [ WITH NAME = new_server_role_name ]
} [ ; ]

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.

Comentarios

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 al rol, 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).

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.Cambiar el nombre de un rol de 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.Agregar 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.Agregar 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.Quitar 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.Quitar 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.Conceder 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.Para ver la pertenencia al 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

Vea también

Referencia

CREATE SERVER ROLE (Transact-SQL)

DROP SERVER ROLE (Transact-SQL)

CREATE ROLE (Transact-SQL)

ALTER ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

Procedimientos almacenados de seguridad (Transact-SQL)

Funciones de seguridad (Transact-SQL)

sys.server_role_members (Transact-SQL)

sys.server_principals (Transact-SQL)

Conceptos

Entidades de seguridad (motor de base de datos)