ALTER SERVER ROLE (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Analytics Platform System (PDW)
Modifie l'appartenance d'un rôle serveur ou modifie le nom d'un rôle serveur défini par l'utilisateur. Les rôles serveur fixes ne peuvent pas être renommés.
Conventions de la syntaxe Transact-SQL
Syntaxe
-- 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
Nom du rôle de serveur à modifier.
ADD MEMBER server_principal
Ajoute le principal de serveur spécifié au rôle de serveur. server_principal peut être un compte de connexion ou un rôle serveur défini par l’utilisateur. server_principal ne peut pas être un rôle serveur fixe, un rôle de base de données ou un administrateur système.
DROP MEMBER server_principal
Supprime le principal de serveur spécifié du rôle de serveur. server_principal peut être un compte de connexion ou un rôle serveur défini par l’utilisateur. server_principal ne peut pas être un rôle serveur fixe, un rôle de base de données ou un administrateur système.
WITH NAME *=***new_server_role_name
Spécifie le nouveau nom du rôle de serveur défini par l'utilisateur. Ce nom ne peut pas déjà exister dans le serveur.
Notes
La modification du nom d'un rôle de serveur défini par l'utilisateur ne modifie pas le numéro d'identification, le propriétaire ou les autorisations du rôle.
Pour modifier l’appartenance au rôle, ALTER SERVER ROLE
remplace sp_addsrvrolemember et sp_dropsrvrolemember. Ces procédures stockées sont déconseillées.
Vous pouvez consulter des rôles de serveur en interrogeant les affichages catalogue sys.server_role_members
et sys.server_principals
.
Pour modifier le propriétaire d’un rôle serveur défini par l’utilisateur, utilisez ALTER AUTHORIZATION (Transact-SQL).
Dans Azure SQL Database, ALTER SERVER ROLE
doit être exécutée dans la master
base de données.
Autorisations
Nécessite l’autorisation ALTER ANY SERVER ROLE
sur le serveur pour changer le nom d’un rôle serveur défini par l’utilisateur.
Rôles serveur fixes
Pour ajouter un membre à un rôle serveur fixe, vous devez être membre de ce rôle serveur fixe ou du rôle serveur fixe sysadmin
.
Notes
Les autorisations CONTROL SERVER
et ALTER ANY SERVER ROLE
ne sont pas suffisantes pour exécuter ALTER SERVER ROLE
pour un rôle serveur fixe, et l’autorisation ALTER
ne peut pas être accordée sur un rôle serveur fixe.
Rôles de serveur définis par l'utilisateur
Pour ajouter un membre à un rôle serveur défini par l’utilisateur, vous devez être membre du rôle serveur fixe sysadmin
, ou disposer de l’autorisationCONTROL SERVER
ou ALTER ANY SERVER ROLE
. Sinon, vous devez disposer de l’autorisation ALTER
sur ce rôle.
Notes
Contrairement aux rôles serveur fixes, les membres d'un rôle de serveur défini par l'utilisateur n'ont pas intrinsèquement l'autorisation d'ajouter des membres à ce même rôle.
Exemples
R. Modifier le nom d'un rôle de serveur
L'exemple suivant crée un rôle de serveur nommé Product
, puis modifie le nom du rôle de serveur en Production
.
CREATE SERVER ROLE Product ;
ALTER SERVER ROLE Product WITH NAME = Production ;
GO
B. Ajouter un compte de domaine à un rôle de serveur
L’exemple suivant ajoute un compte de domaine nommé adventure-works\roberto0
au rôle serveur défini par l’utilisateur nommé Production
.
ALTER SERVER ROLE Production ADD MEMBER [adventure-works\roberto0] ;
C. Ajouter un compte de connexion SQL Server à un rôle de serveur
L’exemple suivant ajoute un compte de connexion SQL Server nommé Ted
au rôle serveur fixe diskadmin
.
ALTER SERVER ROLE diskadmin ADD MEMBER Ted ;
GO
D. Supprimer un compte de domaine d'un rôle de serveur
L’exemple suivant supprime un compte de domaine nommé adventure-works\roberto0
du rôle serveur défini par l’utilisateur nommé Production
.
ALTER SERVER ROLE Production DROP MEMBER [adventure-works\roberto0] ;
E. Supprimer un compte de connexion SQL Server d'un rôle de serveur
L’exemple suivant supprime le compte de connexion SQL ServerTed
du rôle serveur fixe diskadmin
.
ALTER SERVER ROLE Production DROP MEMBER Ted ;
GO
F. Octroyer à un compte de connexion l'autorisation d'ajouter des comptes de connexion à un rôle de serveur défini par l'utilisateur
L'exemple suivant permet à Ted
d'ajouter d'autres comptes de connexion au rôle de serveur défini par l'utilisateur nommé Production
.
GRANT ALTER ON SERVER ROLE::Production TO Ted ;
GO
G. Afficher l’appartenance au rôle
Pour afficher l’appartenance à un rôle, utilisez la page Rôle serveur (Membres) dans SQL Server Management Studio ou exécutez la requête suivante :
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
Exemples : Analytics Platform System (PDW)
H. Ajouter un membre à un rôle de serveur
L’exemple suivant ajoute le compte de connexion Anna
au rôle serveur LargeRC
.
ALTER SERVER ROLE LargeRC ADD MEMBER Anna;
I. Supprimer un compte de connexion d’une classe de ressources
L’exemple suivant supprime l’appartenance d’Anna au rôle serveur LargeRC
.
ALTER SERVER ROLE LargeRC DROP MEMBER Anna;
Étapes suivantes
- CREATE SERVER ROLE (Transact-SQL)
- DROP SERVER ROLE (Transact-SQL)
- CREATE ROLE (Transact-SQL)
- ALTER ROLE (Transact-SQL)
- DROP ROLE (Transact-SQL)
- Procédures stockées liées à la sécurité (Transact-SQL)
- Fonctions de sécurité (Transact-SQL)
- Principaux (moteur de base de données)
- sys.server_role_members (Transact-SQL)
- sys.server_principals (Transact-SQL)