Condividi tramite


ALTER SERVER ROLE (Transact-SQL)

Modifica l'appartenenza di un ruolo del server o il nome di un ruolo del server definito dall'utente. Impossibile rinominare i ruoli predefiniti del server.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

ALTER SERVER ROLE server_role_name 
{
    [ ADD MEMBER server_principal ]
  | [ DROP MEMBER server_principal ]
  | [ WITH NAME = new_server_role_name ]
} [ ; ]

Argomenti

  • server_role_name
    Nome del ruolo del server da modificare.

  • ADD MEMBER server_principal
    Aggiunge l'entità server specificata al ruolo del server. server_principal può essere un account di accesso o un ruolo del server definito dall'utente. server_principal non può essere un ruolo predefinito del server, un ruolo del database o sa.

  • DROP MEMBER server_principal
    Rimuove l'entità server specificata dal ruolo del server. server_principal può essere un account di accesso o un ruolo del server definito dall'utente. server_principal non può essere un ruolo predefinito del server, un ruolo del database o sa.

  • WITH NAME **=**new_server_role_name
    Specifica il nuovo nome del ruolo del server definito dall'utente. Il nome non deve essere già esistente nel server.

Osservazioni

La modifica del nome di un ruolo del server definito dall'utente non comporta la modifica del numero di ID, del proprietario o delle autorizzazioni del ruolo.

Per la modifica dell'appartenenza al ruolo, ALTER SERVER ROLE sostituisce sp_addsrvrolemember e sp_dropsrvrolemember. Queste stored procedure sono deprecate.

È possibile visualizzare i ruoli del server eseguendo una query sulle viste del catalogo sys.server_role_members e sys.server_principals.

Per modificare il proprietario di un ruolo del server definito dall'utente, utilizzare ALTER AUTHORIZATION (Transact-SQL).

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY SERVER ROLE per il server per modificare il nome di un ruolo del server definito dall'utente.

Ruoli predefiniti del server

Per aggiungere un membro a un ruolo predefinito del server, è necessario essere membri di tale ruolo o del ruolo predefinito del server sysadmin.

[!NOTA]

Le autorizzazioni CONTROL SERVER e ALTER ANY SERVER ROLE non sono sufficienti per eseguire ALTER SERVER ROLE per un ruolo predefinito del server e non è possibile concedere l'autorizzazione ALTER per un ruolo predefinito del server.

Ruoli del server definiti dall'utente

Per aggiungere un membro a un ruolo del server definito dall'utente, è necessario essere membri del ruolo predefinito del server sysadmin oppure disporre dell'autorizzazione CONTROL SERVER o ALTER ANY SERVER ROLE. Oppure è necessario disporre dell'autorizzazione ALTER per tale ruolo.

[!NOTA]

A differenza dei ruoli predefiniti del server, i membri di un ruolo del server definito dall'utente non dispongono implicitamente dell'autorizzazione per aggiungere membri a quello stesso ruolo.

Esempi

A.Modifica del nome di un ruolo del server

Nell'esempio seguente viene creato un ruolo del server denominato Product, viene quindi modificato il nome del ruolo del server in Production.

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

B.Aggiunta di un account di dominio a un ruolo del server

Nell'esempio seguente viene aggiunto un account di dominio denominato adventure-works\roberto0 al ruolo del server definito dall'utente denominato Production.

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

C.Aggiunta di un account di accesso di SQL Server a un ruolo del server

Nell'esempio seguente un account di accesso di SQL Server denominato Ted viene aggiunto al ruolo predefinito del server diskadmin.

ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO

D.Rimozione di un account di dominio da un ruolo del server

Nell'esempio seguente viene rimosso un account di dominio denominato adventure-works\roberto0 dal ruolo del server definito dall'utente denominato Production.

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

E.Rimozione di un account di accesso di SQL Server da un ruolo del server

Nell'esempio seguente l'account di accesso Ted di SQL Server viene rimosso dal ruolo predefinito del server diskadmin.

ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO

F.Concessione di un account di accesso all'autorizzazione per aggiungere account di accesso a un ruolo del server definito dall'utente

Nell'esempio seguente viene consentito a Ted di aggiungere altri account di accesso al ruolo del server definito dall'utente denominato Production.

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

G.Per visualizzare l'appartenenza ai ruoli

Per visualizzare appartenenza ai ruoli, utilizzare la pagina relativa al ruolo del server (membri) in SQL Server Management Studio o eseguire la query seguente:

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

Vedere anche

Riferimento

CREATE SERVER ROLE (Transact-SQL)

DROP SERVER ROLE (Transact-SQL)

CREATE ROLE (Transact-SQL)

ALTER ROLE (Transact-SQL)

DROP ROLE (Transact-SQL)

Stored procedure di sicurezza (Transact-SQL)

Funzioni di sicurezza (Transact-SQL)

sys.server_role_members (Transact-SQL)

sys.server_principals (Transact-SQL)

Concetti

Entità (Motore di database)