Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 10h00   #1
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Par défaut [sql server 2005]N'autoriser que l'exécution de certaines procédures stockées

Bonjour,

Je m'attaque à la sécurité des accès aux DB pour les nouvelles applications.

Vu qu'il n'y a pas de DBA dans ma boîte, je m'y colle mais j'avoue que je joue un peu à l'apprenti sorcier pour le moment...

Jusqu'ici, j'ai créé un login sur base d'un groupe active directory et je l'ai mappé sur la DB qu'il doit accéder.

Je retrouve donc dans la partie security de la DB en question, un user correspondant au login.

Par contre, quand je vais dans securables pour lui dire quelles sont les procédures stockées qu'il peut exécuter, je reçois une erreur... (voir pièce jointe).

J'ai donné le role db_datareader à l'utilisateur. Est-ce correct ?

J'ai recherché un peu dans google et sur ce forum mais vu que je n'y connais presque rien, je ne comprends pas grand chose aux solutions proposées et je ne suis pas sûr que cela s'applique à mon problème.

Que dois-je faire pour corriger cette erreur ?

Merci d'avance.

Griftou.

EDIT :
J'ajoute une 2e pièce jointe qui sera p-e utile. L'erreur se produit lorsque je clique sur "Effective permissions..." .
Sinon, si je clique juste sur OK et que je retourne voir, je constate que ce que j'ai ajouté dans securables ne s'y trouve plus.
Images attachées
Type de fichier : png error.png (17,3 Ko, 4 affichages)
Type de fichier : png securables.png (39,1 Ko, 4 affichages)
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 11h58   #2
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 674
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 674
Points : 8 741
Points : 8 741
Bonjour,

Si vous voulez n'autoriser que l'exécution de certaines procédures stockées, alors il faut exécuter GRANT EXECUTE ON monSchema.maProcedure TO monUtilisateur.

A mon avis vous avez besoin de lire ce billet, et les deux liens que j'y référence si ce n'est pas déjà fait.

Le rôle db_datareader, comme l'indique la documentation, permet seulement d'exécuter une instruction SELECT sur une table ou une vue de la base de données.

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 12h08   #3
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Arf, j'enlève donc le db_datareader ^^.

Quand je disais que je jouais à l'apprenti sorcier, je n'exagérais pas .

Merci pour le lien de votre article. Je vais lire cela de suite !
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 12h21   #4
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Citation:
Si vous voulez n'autoriser que l'exécution de certaines procédures stockées, alors il faut exécuter GRANT EXECUTE ON monSchema.maProcedure TO monUtilisateur.
Effectivement mais attention si vos procédures utilisent du SQL Dynamique le seul droit d'exécution sur les objets concernés ne permettra pas à vous utilisateurs de les executer. Il faudra soit donner les droits nécessaires aux objets sous jascents (mauvaise solution selon moi), soit utiliser des outils à disposition comme exécuter la procédure en impersonnalisation le contexte utilisateur ou encore utiliser signer votre procédure à l'aide d'un certificat par exemple.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 12h44   #5
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Ces procédures n'utilisent pas de sql dynamique donc tout va bien ^^.

Par contre, je n'arrive tjs pas à lancer l'application (qui est déployé sur un serveur citrix) et donc à tester les droits d'accès .

Je pensais que le problème venait du fait que l'utilisateur ne pouvait pas exécuter les procédures qui sont appelées au démarrage de l'application mais il semblerait que le problème soit ailleurs.

Griftou.
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 12h55   #6
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Est-ce que vous avez un message d'erreur explicite ?

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h08   #7
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Non malheureusement..

Je n'ai juste rien.

Le serveur ouvre la session vers l'application mais la fenêtre reste désespérément vide et se ferme après environ 1 minute.

Je vais aller ennuyer les admins du citrix pour voir s'ils ont quelque chose dans les logs ^^
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h20   #8
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 726
Points : 6 851
Points : 6 851
Citation:
Je vais aller ennuyer les admins du citrix pour voir s'ils ont quelque chose dans les logs ^^
Je pense qu'il faut commencer pa là en effet

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h43   #9
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Bon, il s'agissait d'un problème de dll manquante.

L'application se lance mais il y a un problème dans la définition du rapport reporting service ^^.

Dès que cela est résolu, je vous dis si j'accède aux procédures stockées ou non
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 13h49   #10
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur
Inscription : juillet 2006
Messages : 1 309
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : Belgique

Informations professionnelles :
Activité : Analyste / Programmeur
Secteur : Distribution

Informations forums :
Inscription : juillet 2006
Messages : 1 309
Points : 1 019
Points : 1 019
Super, ça fonctionne !!!

Par contre, je pinaille peut-être, mais je vais quand même faire un revoke des droits pour l'utilisateur histoire d'être sûr que c'est bien le grant que j'ai fait tout à l'heure qui fait que l'accès au stored procedure est permis.

Je passe le sujet en résolu.

Merci les gars!!!

Griftou.
Kropernic est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h26.


 
 
 
 
Partenaires

Hébergement Web