ALTER SERVER ROLE (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Analytics Platform System (PDW)
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.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
-- 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;
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, usare ALTER AUTHORIZATION (Transact-SQL).
In database SQL di Azure deve ALTER SERVER ROLE
essere eseguito nel master
database.
Autorizzazioni
Per modificare il nome di un ruolo del server definito dall'utente è richiesta l'autorizzazione ALTER ANY SERVER ROLE
per il server.
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 l'autorizzazione ALTER
non può essere concessa 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 avere l'autorizzazione CONTROL SERVER
o ALTER ANY SERVER ROLE
. In alternativa è necessario avere l'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
R. Modificare il 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. Aggiungere 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. Aggiungere un account di accesso di SQL Server a un ruolo del server
Nell'esempio seguente viene aggiunto un account di accesso di SQL Server denominato Ted
al ruolo predefinito del server diskadmin
.
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D. Rimuovere 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. Rimuovere un account di accesso di SQL Server da un ruolo del server
Nell'esempio seguente l'account di accesso di SQL Server Ted
viene rimosso dal ruolo predefinito del server diskadmin
.
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. Concedere a un account di accesso l'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. Visualizzare l'appartenenza ai ruoli
Per visualizzare l'appartenenza ai ruoli, usare la pagina Ruolo 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
Esempi: Piattaforma di strumenti analitici (PDW)
H. Aggiungere un membro a un ruolo del server
Nell'esempio seguente l'account di accesso Anna
viene aggiunto al ruolo del server LargeRC
.
ALTER SERVER ROLE LargeRC ADD MEMBER Anna;
I. Rimuovere un account di accesso da una classe di risorse
L'esempio seguente rimuove l'appartenenza di Anna al ruolo del server LargeRC
.
ALTER SERVER ROLE LargeRC DROP MEMBER Anna;
Passaggi successivi
- CREATE SERVER ROLE (Transact-SQL)
- DROP SERVER ROLE (Transact-SQL)
- CREATE ROLE (Transact-SQL)
- ALTER ROLE (Transact-SQL)
- DROP ROLE (Transact-SQL)
- Stored procedure relative alla sicurezza (Transact-SQL)
- Funzioni di sicurezza (Transact-SQL)
- Entità di sicurezza (Motore di database)
- sys.server_role_members (Transact-SQL)
- sys.server_principals (Transact-SQL)