ALTER ROLE (Transact-SQL)

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

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

Sintaxis

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

Argumentos

  • role_name
    Nombre del rol que se va a cambiar.

  • ADD MEMBER database_principal
    Agrega la entidad de seguridad de la base de datos especificada al rol de base de datos. database_principal puede ser un usuario 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
    Quita la entidad de seguridad de base de datos especificada del rol de base de datos. database_principal puede ser un usuario 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
    Especifica el nuevo nombre del rol definido por el usuario. Este nombre no debe existir en la base de datos. No puede cambiar el nombre de los roles fijos de base de datos.

Comentarios

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

Los roles de base de datos están visibles en las vistas de catálogo sys.database_role_members y sys.database_principals.

Nota de advertenciaAdvertencia

El comportamiento de los esquemas cambió en SQL Server 2005. En consecuencia, el código que supone que los esquemas son equivalentes a los usuarios de base de datos puede dejar de devolver resultados correctos. Las antiguas vistas de catálogo, incluida sysobjects, no se deben usar en una base de datos en la que se haya utilizado alguna vez cualquiera de las siguientes instrucciones DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. En esas bases de datos, debe usar las nuevas vistas de catálogo. En las nuevas vistas de catálogo se tiene en cuenta la separación de entidades de seguridad y esquemas que se estableció en SQL Server 2005. Para obtener más información sobre las vistas de catálogo, vea Vistas de catálogo (Transact-SQL).

Permisos

Requiere el permiso ALTER ANY ROLE en la base de datos, o el permiso ALTER en el rol, o la pertenencia a db_securityadmin. Para poder agregar miembros a los roles fijos de base de datos, es necesario pertenecer al rol fijo de base de datos db_owner.

Ejemplos

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

En el ejemplo siguiente se cambia el nombre del rol buyers a purchasing.

USE AdventureWorks2012;
ALTER ROLE buyers WITH NAME = purchasing;
GO

B.Agregar y quitar miembros del rol

En el ejemplo siguiente se crea un rol denominado Sales y se agrega y después se quita un usuario denominado Barry.

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

Vea también

Referencia

CREATE ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

sp_addrolemember (Transact-SQL)

sys.database_role_members (Transact-SQL)

sys.database_principals (Transact-SQL)

Conceptos

Entidades de seguridad (motor de base de datos)