Microsoft SQL Server
Autorisations de base de données
Recherche…
Remarques
Syntaxe de base:
{GRANT| REVOKE | DENY} {PERMISSION_NAME} [ON {SECURABLE}] TO {PRINCIPAL};
- {GRANT | REVOKE | DENY} - Ce que vous essayez d'accomplir
- Grant: "Donnez cette permission au principal déclaré"
- Révoquer: "Prenez cette permission du principal déclaré"
- Refuser: "Assurez-vous que le principal déclaré ne dispose jamais de cette permission (par exemple,"
DENY SELECT
"signifie que indépendamment de toute autre autorisation,SELECT
échouera pour ce principal)
- PERMISSION_NAME - L'opération que vous essayez d'affecter. Cela dépendra de la sécurisable. Par exemple, il n'est pas logique d'accorder
GRANT SELECT
sur une procédure stockée. - SECURABLE - Le nom de la chose sur laquelle vous essayez d'affecter des autorisations. Ceci est facultatif . Dire
GRANT SELECT TO [aUser];
est parfaitement acceptable cela signifie "pour toute opération sécurisable pour laquelle l'autorisationSELECT
un sens,GRANT
cette autorisation". - PRINCIPAL - Pour qui vous essayez d'affecter des autorisations. Au niveau de la base de données, cela peut être un rôle (application ou base de données) ou un utilisateur (mappé ou non sur un login) par exemple.
Modification des autorisations
GRANT SELECT ON [dbo].[someTable] TO [aUser];
REVOKE SELECT ON [dbo].[someTable] TO [aUser];
--REVOKE SELECT [dbo].[someTable] FROM [aUser]; is equivalent
DENY SELECT ON [dbo].[someTable] TO [aUser];
CRÉER UN UTILISATEUR
--implicitly map this user to a login of the same name as the user
CREATE USER [aUser];
--explicitly mapping what login the user should be associated with
CREATE USER [aUser] FOR LOGIN [aUser];
CREER UN RÔLE
CREATE ROLE [myRole];
Modification de l'appartenance à un rôle
-- SQL 2005+
exec sp_addrolemember @rolename = 'myRole', @membername = 'aUser';
exec sp_droprolemember @rolename = 'myRole', @membername = 'aUser';
-- SQL 2008+
ALTER ROLE [myRole] ADD MEMBER [aUser];
ALTER ROLE [myRole] DROP MEMBER [aUser];
Remarque: les membres de rôle peuvent être n'importe quel principal au niveau de la base de données. En d'autres termes, vous pouvez ajouter un rôle en tant que membre dans un autre rôle. De plus, l'ajout / suppression de membres de rôle est idempotent. En d'autres termes, si vous essayez d'ajouter / de supprimer, vous vous retrouverez avec / sans (respectivement) dans le rôle, quel que soit l'état actuel de l'appartenance à un rôle.
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow