Pour le rôle db_denycustomer
, je veux que seul le code de colonne de la table client soit SELECTable, et aucun des autres. Alors j'ai fait ça:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
... et ça marche bien. Cool! Mais pourquoi ?
Ce que j'ai lu dans des articles connexes, c'est que la pile d'autorisations, mais DENY
a priorité. En revanche, dans mon cas, il semble que la dernière "requête" d'autorisation ait eu la priorité. Effectivement, si je les exécute dans l'ordre inverse, ce dernier DENY
masque également la colonne de code.
Peux tu développer ta pensée à ce propos?
J'ai également inclus la valeur par défaut db_datawriter
et les db_datareader
rôles pour l'utilisateur avec lequel j'ai testé.