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.
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)
Procedimientos almacenados de seguridad (Transact-SQL)
Funciones de seguridad (Transact-SQL)
sys.server_role_members (Transact-SQL)
sys.server_principals (Transact-SQL)