Dela via


ALTER ROLE (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Lägger till eller tar bort medlemmar till eller från en databasroll, eller ändrar namnet på en användardefinierad databasroll.

Note

Om du vill lägga till eller ta bort medlemmar från roller i Azure Synapse Analytics and Analytics Platform System (PDW) använder du sp_addrolemember (Transact-SQL) och sp_droprolemember (Transact-SQL).

Transact-SQL syntaxkonventioner

Syntax

Syntax för SQL Server (från och med 2012), Azure SQL Managed Instance, Azure SQL Database och Microsoft Fabric.

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

Syntax för SQL Server före 2012.

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

Arguments

role_name
Gäller för: SQL Server (från och med 2008), Azure SQL Database, Azure SQL Managed Instance

Anger vilken databasroll som ska ändras.

LÄGG TILL MEDLEMS-database_principal
Gäller för: SQL Server (från och med 2012), Azure SQL Database, Azure SQL Managed Instance

Anger att databasobjektet ska läggas till i medlemskapet i en databasroll.

  • database_principal är en databasanvändare eller en användardefinierad databasroll.

  • database_principal kan inte vara en fast databasroll eller ett serverhuvudnamn.

SLÄPP MEDLEM database_principal
Gäller för: SQL Server (från och med 2012), Azure SQL Database, Azure SQL Managed Instance

Anger att ett databasobjekt ska tas bort från medlemskapet i en databasroll.

  • database_principal är en databasanvändare eller en användardefinierad databasroll.

  • database_principal kan inte vara en fast databasroll eller ett serverhuvudnamn.

MED NAMN = new_name
Gäller för: SQL Server (från och med 2008), Azure SQL Database, Azure SQL Managed Instance

Anger att namnet på en användardefinierad databasroll ska ändras. Det nya namnet får inte redan finnas i databasen.

Om du ändrar namnet på en databasroll ändras inte ID-nummer, ägare eller behörigheter för rollen.

Permissions

Om du vill köra det här kommandot behöver du en eller flera av dessa behörigheter eller medlemskap:

  • ALTER-behörighet för rollen
  • ÄNDRA VALFRI ROLLbehörighet i databasen
  • Medlemskap i db_securityadmin fast databasroll

För att ändra medlemskapet i en fast databasroll behöver du dessutom:

  • Medlemskap i db_owner fast databasroll

Begränsningar och restriktioner

Du kan inte ändra namnet på en fast databasroll.

Metadata

Dessa systemvyer innehåller information om databasroller och databashuvudnamn.

Examples

A. Ändra namnet på en databasroll

Gäller för: SQL Server (från och med 2008), Azure SQL Database, Azure SQL Managed Instance

I följande exempel ändras namnet på rollen buyers till purchasing. Det här exemplet kan köras i AdventureWorks-exempeldatabasen .

ALTER ROLE buyers WITH NAME = purchasing;  

B. Lägga till eller ta bort rollmedlemmar

Gäller för: SQL Server (från och med 2012), Azure SQL Database, Azure SQL Managed Instance

I det här exemplet skapas en databasroll med namnet Sales. Den lägger till en databasanvändare med namnet Barry i medlemskapet och visar sedan hur du tar bort medlemmen Barry. Det här exemplet kan köras i AdventureWorks-exempeldatabasen .

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

C. Lägga till en rollmedlem i specialroller för Azure SQL Database

gäller för: Azure SQL Database

Det här exemplet skapar en SQL-inloggning i den virtuella huvuddatabasen, skapar en databasanvändare som är relaterad till serverinloggningen och lägger till databasanvändaren som medlem i specialrollen dbmanager. I exemplet kan användarens behörigheter skapa och släppa databaser på en logisk Azure SQL Database-server. Kör exemplet i den virtuella huvuddatabasen för den logiska Azure SQL Database-servern.

 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;

See Also

SKAPA ROLL (Transact-SQL)
huvudnamn (databasmotor)
SLÄPP ROLL (Transact-SQL)
sp_addrolemember (Transact-SQL)
sys.database_role_members (Transact-SQL)
sys.database_principals (Transact-SQL)