ALTER ROLE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstancePunto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Agrega o quita miembros en un rol de base de datos o cambia el nombre de un rol de base de datos definido por el usuario.

Nota:

Para agregar o quitar miembros de los roles en Azure Synapse Analytics y en Analytics Platform System (PDW), use sp_addrolemember (Transact-SQL) y sp_droprolemember (Transact-SQL).

Convenciones de sintaxis de Transact-SQL

Sintaxis

Sintaxis de SQL Server (a partir de 2012), Azure SQL Managed Instance, Azure SQL Database y Microsoft Fabric.

ALTER ROLE  role_name  
{  
       ADD MEMBER database_principal  
    |  DROP MEMBER database_principal  
    |  WITH NAME = new_name  
}  
[;]  

Sintaxis de SQL Server, versiones anteriores a 2012.

-- Change the name of a user-defined database role  
ALTER ROLE role_name   
    WITH NAME = new_name  
[;]  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulte Versiones anteriores de la documentación.

Argumentos

role_name
Se aplica a: SQL Server (comenzando con 2008), Azure SQL Database, Azure SQL Managed Instance

Especifica el rol de base de datos que cambiar.

ADD MEMBER database_principal
Se aplica a: SQL Server (comenzando con 2012), Azure SQL Database, Azure SQL Managed Instance

Especifica que se agregue la entidad de seguridad de base de datos a la pertenencia de un rol de base de datos.

  • database_principal es un usuario de base de datos o un rol de base de datos definido por el usuario.

  • database_principal no puede ser un rol fijo de base de datos ni una entidad de seguridad del servidor.

DROP MEMBER database_principal
Se aplica a: SQL Server (comenzando con 2012), Azure SQL Database, Azure SQL Managed Instance

Especifica que se quite la entidad de seguridad de base de datos de la pertenencia de un rol de base de datos.

  • database_principal es un usuario de base de datos o un rol de base de datos definido por el usuario.

  • database_principal no puede ser un rol fijo de base de datos ni una entidad de seguridad del servidor.

WITH NAME = new_name
Se aplica a: SQL Server (comenzando con 2008), Azure SQL Database, Azure SQL Managed Instance

Especifica que se cambie el nombre de un rol de base de datos definido por el usuario. El nuevo nombre no debe existir en la base de datos.

El cambio de nombre de un rol de base de datos no modifica el número de identificación, el propietario, ni los permisos del rol.

Permisos

Para ejecutar este comando, se necesitan uno o varios de los siguientes permisos o pertenencias a grupos:

  • Permiso ALTER en el rol
  • Permiso ALTER ANY ROLE en la base de datos
  • Pertenencia al rol fijo de base de datos db_securityadmin

Además, para cambiar la pertenencia a un rol fijo de base de datos, se necesita lo siguiente:

  • Pertenencia al rol fijo de base de datos db_owner

Limitaciones y restricciones

El nombre de los roles fijos de base de datos no se puede cambiar.

Metadatos

Estas vistas del sistema contienen información sobre los roles de base de datos y las entidades de seguridad de las base de datos.

Ejemplos

A. Cambiar el nombre de un rol de base de datos

Se aplica a: SQL Server (comenzando con 2008), Azure SQL Database, Azure SQL Managed Instance

En el ejemplo siguiente se cambia el nombre del rol buyers a purchasing. Este ejemplo se puede ejecutar en la base de datos de ejemplo AdventureWorks.

ALTER ROLE buyers WITH NAME = purchasing;  

B. Agregar o quitar a miembros del rol

Se aplica a: SQL Server (comenzando con 2012), Azure SQL Database, Azure SQL Managed Instance

En este ejemplo se crea el rol de base de datos Sales. Se agrega un usuario de base de datos denominado Barry a la pertenencia y, luego, se indica cómo quitar el miembro Barry. Este ejemplo se puede ejecutar en la base de datos de ejemplo AdventureWorks.

CREATE ROLE Sales;  
ALTER ROLE Sales ADD MEMBER Barry;  
ALTER ROLE Sales DROP MEMBER Barry;  

C. Agregar un miembro de rol a roles especiales para Azure SQL Database

Se aplica a: Azure SQL Database

En este ejemplo se crea un inicio de sesión SQL en la base de datos maestra virtual, se crea un usuario de base de datos relacionado con ese inicio de sesión de servidor y se agrega el usuario de base de datos como miembro del rol especial dbmanager. En el ejemplo se concede al usuario permisos para crear y quitar bases de datos en un servidor lógico de Azure SQL Database. Ejecute el ejemplo en la base de datos maestra virtual del servidor lógico de Azure SQL Database.

 CREATE LOGIN sqllogin_nlastname WITH password='aah3%#om1os';
    
 CREATE USER sqllogin_nlastname FOR LOGIN sqllogin_nlastname 
 WITH DEFAULT_SCHEMA = master;
    
 ALTER ROLE [dbmanager] add member sqllogin_nlastname;

Vea también

CREATE ROLE (Transact-SQL)
Entidades de seguridad (motor de base de datos)
DROP ROLE (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)