IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Grant execute sur PS sans grant sur les tables [2014]


Sujet :

Développement SQL Server

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut Grant execute sur PS sans grant sur les tables
    Bonjour,
    Il me semblait que lorsqu'on faisait un grant execute sur une procédure stockée à un user ou un rôle, il n'y avait pas besoin que l'utilisateur ait les droits d'insert/select sur les tables sous-jacentes.
    Est-ce vrai ?
    Car j'ai l'impression dans mon application que cela ne marche pas comme cela.

    Sachant que la procédure stockée utilise des tables de différents schema.
    PS: Je mettrai un exemple tout à l'heure, là j'ai une réunion dans 3 minutes.
    Merci
    Soazig

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Rebonjour,
    Voilà l'exemple promis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    CREATE LOGIN user_soazig WITH PASSWORD=N'XXX', 
      DEFAULT_DATABASE=EcubeDwh, DEFAULT_LANGUAGE=[Français],       
      CHECK_EXPIRATION=OFF, CHECK_POLICY=ON
      GO
    ALTER LOGIN user_soazig WITH PASSWORD=N'XXX'
    GO
    ALTER LOGIN user_soazig ENABLE
     
    GO
     
    CREATE USER user_soazig FOR LOGIN user_soazig WITH DEFAULT_SCHEMA=[dbo]
    GO
     
    CREATE ROLE My_test_role	
    GO
     
    EXEC sp_addrolemember 'My_test_role', 'user_soazig'
    GO
     
    Create procedure web.TestRight
    AS
    begin
     select * from dwh.REF_IDS
    End
     
    GO
    Grant execute on web.TestRight to My_test_role;
    GO
    Et quand je me connecte avec user_soazig
    J'obtiens
    Msg 229, Level 14, State 5, Procedure TestRight, Line 5
    L'autorisation SELECT a été refusée sur l'objet 'REF_IDS', base de données 'ECubeDWH', schéma 'dwh'.
    Donc il semblerait que les droits sur la PS ne suffise pas.
    Mais j'aimerai bien une certitude.
    Merci
    Soazig

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    En effet, les privilèges dans une procédure ne sont pas vérifiés pour les objets appartenant au propriétaire de la procédure en question .

    Donc dans l'exemple, pour que ça fonctionne, il faut que le propriétaire de la procédure web.TestRight soit aussi propriétaire de dwh.REF_IDS.

    cf "chaine de propriétés"
    https://docs.microsoft.com/fr-fr/dot...-in-sql-server

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 895
    Points : 53 123
    Points
    53 123
    Billets dans le blog
    6
    Par défaut
    Sinon, dépersonnalisez là avec EXECUTE AS.....

    A +

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour à tous, et grand merci
    Et bien, il me semblait mal. Je pense que mon erreur vient de ce que j'ai beaucoup travaillé avec un seul propriétaire et donc pas de problème.
    J'ai donné les droits unitaires qui vont bien sur les différentes PS, tables, vues et ça marche.
    Cordialement
    Soazig

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 332
    Points : 39 718
    Points
    39 718
    Billets dans le blog
    9
    Par défaut
    La traduction est pour le moins perfectible, je cite :
    Chaque objet sécurisable possède des autorisations qui peuvent être accordées à une principal de sécurité à l'aide d'instructions d'autorisation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/03/2017, 14h51
  2. [MYSQL] Commentaires sur les tables et les champs
    Par luc2verga dans le forum Requêtes
    Réponses: 10
    Dernier message: 29/05/2007, 23h49
  3. Réponses: 12
    Dernier message: 22/06/2006, 10h26
  4. verrous sur les tables
    Par rv66 dans le forum Paradox
    Réponses: 2
    Dernier message: 04/09/2005, 20h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo