ALTER ROLE (Transact-SQL)
Se aplica a: Sql Server
Azure SQL Database
Azure SQL Instancia administrada
punto de conexión de SQL Analytics en Microsoft Fabric
Warehouse 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)