Donnez des droits de lecture sur des procedures stockees
Dans la série tutorial du jour, voici une question récente d'un client :
"Comment ne donner de droits qu'aux procédures stockées de ma base ?"
C'est parti :
1) D'abord créer un Login Sql Server (à ne pas confondre avec l'utilisateur base de données !)
On crée un login pour permettre une connexion au serveur. Ce qui permet "juste que de" se connecter, et rien d'autre
2) Une fois le login créé, on crée, sur la base de donneés (Demo chez moi) l'utilisateur associé à :
- ce login
- cette base de données
Ce qui veut dire que lorsque monsieur X se connecte avec le login défini avant et qu'il tente une action sur la base de données, il aura les droits de cet utilisateur.
Notez (et c'est assez fréquent) que dans mon exemple, le login et le nom d'utilisateur sont les même, mais ceci n'est absolument pas obligatoire.
Bien, nous avons créé notre utilisateur. Il n'a tjs aucun droits particulier, si ce n'est le néant absolu, proche de l'ère glaciaire.
3) Nous allons donc lui donner les droits d'éxécution sur une procédure stockée : sGetAllClients. (Notez que j'ai d'autres procédures stockées, auxquelles je ne donne pas de droits particulier)
Direction onglet Permissions, et nous recherchons notre utilisateur
Sur lequel nous lui affectons les droits d'éxécution
Et voilà, c'est fini.
Un petit test : Je me connecte avec mon fameux login :
Je déroule le noeud proc stock de ma base, at oh miracle, seule la procédure stockée que j'ai le droits d'éxécuter apparait (notez le cadenas qui indique que je n'ai pas le droit de la modifier)
et exécution
Et voilà, fini !