Mim

Select * from Seb where Sujets in (SQL Server 2008, ADO.NET, Visual Studio 2008)

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 !)

image

On crée un login pour permettre une connexion au serveur. Ce qui permet "juste que de" se connecter, et rien d'autre

image

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

image

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.

image

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)

image

Direction onglet Permissions, et nous recherchons notre utilisateur

image

Sur lequel nous lui affectons les droits d'éxécution

image

 

Et voilà, c'est fini.

Un petit test : Je me connecte avec mon fameux login :

image

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)

image

et exécution

image

 

Et voilà, fini !

Commentaires

Jean-Pierre Riehl a dit :

à condition de ne pas casser la chaîne d'appartenance (ownership chain)... sinon, il faudra donner des droits de lecture aux tables sous-jacentes.

# septembre 17, 2008 4:59

Mimetis a dit :

Ah tiens, JP de retour, bien passé ces vacances ? :)

# septembre 17, 2008 7:45