ALTER SERVER ROLE (Transact-SQL)
Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Analytics 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
- 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)
- Entidades de seguridad (motor de base de datos)
- sys.server_role_members (Transact-SQL)
- sys.server_principals (Transact-SQL)