ALTER SERVER ROLE (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)

Ändrar medlemskapet för en serverroll eller ändrar namnet på en användardefinierad serverroll. Fasta serverroller kan inte byta namn.

Transact-SQL syntaxkonventioner

Syntax

-- 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;  

Arguments

server_role_name

Är namnet på serverrollen som ska ändras?

LÄGG TILL MEDLEM server_principal

Lägger till den specificerade serverprincipen i serverrollen. server_principal kan vara en inloggning eller en användardefinierad serverroll. server_principal kan inte vara en fast serverroll, en databasroll eller SA.

DROP MEDLEM server_principal

Tar bort den angivna serverprincipalen från serverrollen. server_principal kan vara en inloggning eller en användardefinierad serverroll. server_principal kan inte vara en fast serverroll, en databasroll eller SA.

MED NAMN =new_server_role_name

Specificerar det nya namnet på den användardefinierade serverrollen. Detta namn kan inte redan existera på servern.

Remarks

Att ändra namnet på en användardefinierad serverroll ändrar inte ID-nummer, ägare eller behörigheter för rollen.

För att byta roll ersätter ALTER SERVER ROLE medlemskap sp_addsrvrolemember och sp_dropsrvrolemember. Dessa lagrade procedurer är föråldrade.

Du kan se serverroller genom att söka i sys.server_role_members och sys.server_principals katalogvyerna.

För att ändra ägaren till en användardefinierad serverroll, använd ALTER AUTHORIZATION (Transact-SQL).

I Azure SQL Database måste köras ALTER SERVER ROLE i databasenmaster.

Permissions

Kräver ALTER ANY SERVER ROLE behörighet på servern för att ändra namnet på en användardefinierad serverroll.

Fördefinierade serverroller

För att lägga till en medlem i en fast serverroll måste du vara medlem i den fasta serverrollen, eller vara medlem i den sysadmin fasta serverrollen.

Anmärkning

Och behörigheterna CONTROL SERVER är inte tillräckliga för att köras ALTER SERVER ROLE för en fast serverroll, och ALTER behörighet kan inte ges för en fast serverroll.ALTER ANY SERVER ROLE

Användardefinierade serverroller

För att lägga till en medlem i en användardefinierad serverroll måste du vara medlem i den sysadmin fasta serverrollen eller ha CONTROL SERVER eller ALTER ANY SERVER ROLE tillstånd. Eller så måste du ha ALTER tillstånd för den rollen.

Anmärkning

Till skillnad från fasta serverroller har medlemmar i en användardefinierad serverroll inte automatiskt behörighet att lägga till medlemmar i samma roll.

Examples

A. Byt namn på en serverroll

Följande exempel skapar en serverroll som heter Product, och ändrar sedan namnet på serverrollen till Production.

CREATE SERVER ROLE Product ;  
ALTER SERVER ROLE Product WITH NAME = Production ;  
GO  

B. Lägg till ett domänkonto i en serverroll

Följande exempel lägger till ett domänkonto med namnet adventure-works\roberto0 till den användardefinierade serverrollen med namnet Production.

ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;  

C. Lägg till en SQL Server-inloggning till en serverroll

Följande exempel lägger till en SQL Server-inloggning namngiven Ted till den diskadmin fasta serverrollen.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;  
GO  

D. Ta bort ett domänkonto från en serverroll

Följande exempel tar bort ett domänkonto med namnet adventure-works\roberto0 från den användardefinierade serverrollen med namnet Production.

ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;  

E. Ta bort en SQL Server-inloggning från en serverroll

Följande exempel tar bort SQL Server-inloggningen Ted från den diskadmin fasta serverrollen.

ALTER SERVER ROLE Production DROP MEMBER Ted ;  
GO  

F. Ge en inloggning behörighet att lägga till inloggningar till en användardefinierad serverroll

Följande exempel tillåter Ted att lägga till andra inloggningar till den användardefinierade serverrollen med namnet Production.

GRANT ALTER ON SERVER ROLE::Production TO Ted ;  
GO  

G. Visa rollmedlemskap

För att se rollmedlemskap, använd sidan Server Role (Members) i SQL Server Management Studio eller kör följande fråga:

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  

Exempel: Analysplattformssystem (PDW)

H. Lägg till en medlem i en serverroll

Följande exempel lägger till inloggningen Anna i LargeRC serverrollen.

ALTER SERVER ROLE LargeRC ADD MEMBER Anna;  

I. Ta bort en inloggning från en resursklass

Följande exempel tar bort Annas medlemskap i LargeRC serverrollen.

ALTER SERVER ROLE LargeRC DROP MEMBER Anna;  

Nästa steg