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

Administration SQL Server Discussion :

Droit "Afficher la définition" sur toutes les vues [2012]


Sujet :

Administration SQL Server

  1. #1
    Membre régulier Avatar de DevBaldwin
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Points : 82
    Points
    82
    Par défaut Droit "Afficher la définition" sur toutes les vues
    Bonjour,

    Petit souci d'administration d'une Bdd MS SQL Server 2012 SP4, je cherche à donner à nos développeurs, l'accès à "comment qu'elle a été construite cette vue ?", sur une Bdd de Prod.
    Il faut donc qu'ils puissent avoir connaissance de la définition de la vue, sans qu'ils puissent la modifier (nous sommes en Prod).

    Dans les rôles de Bdd, je n'ai rien trouvé qui semble coller à mon besoin (peut-être ai-je mal vu, je débute ).
    J'ai alors créé un rôle de Bdd perso, auquel j'ai donné le droit "Afficher la définition" sur toutes les vues de la Bdd.
    J'ai ensuite donné ce nouveau rôle à nos Dev, qui avaient déjà le rôle "db datareader".

    Ça fonctionnait bien, jusqu'à ce que d'autres vues soient créées et que les Dev s'étonnent de ne pas pouvoir voir la définition de ces nouvelles vues.

    Il faudrait donc que j'inclue les nouvelles vues à mon rôle de Bdd à chaque création de vues, où que je révise régulièrement les droits.

    Je peux paraître faignant, mais aucune de ces 2 solutions me séduit.
    N'y aurait-il pas un droit fixe (Bdd / Serveur) que je ne connais pas et qui permettrait de voir la définition de toutes les vues d'une Bdd, sans pouvoir les modifier ?

    J'espère ne pas avoir été confus dans mes explications

    Baldwin,

  2. #2
    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,

    Vous avez effectué un GRANT pour chaque vue existante ?
    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT VIEW DEFINITION ON [UneVue] To [LeRole]
    il est donc normal de ne pas avoir le privilege sur les nouvelles vues.

    Vous pouvez octroyer le privilege sur une schéma :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT VIEW DEFINITION ON Schema::[LeSchema] To [LeRole]
    ou bien sur la base compléte, en ne précisant pas l'objet cible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT VIEW DEFINITION To [LeRole]
    ou bien encore pour toutes les bases

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT VIEW ANY DEFINITION To [LeRole]

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 927
    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 927
    Points : 51 735
    Points
    51 735
    Billets dans le blog
    6
    Par défaut
    Et plus généralement sur la gestion des privilèges dans MS SQL Server :
    https://blog.developpez.com/sqlpro/p..._et_utilisateu

    Pour information on ne parle pas de droits.... Mais de privilèges ou permission. Privilège de pouvoir exécuter telle ou telle commande !

    A +

  4. #4
    Membre régulier Avatar de DevBaldwin
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par aieeeuuuuu Voir le message
    Bonjour, [...]
    Excellent !
    C'est exactement ce que je cherchais, merci


    Citation Envoyé par SQLpro Voir le message
    Et plus généralement [...]
    Je vais prendre un café et éplucher tout ça

    Dernière question, c'est peut-être expliqué dans ton blog, pourquoi ne parle-t-on pas de droits, mais de privilèges ou permission ?

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 927
    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 927
    Points : 51 735
    Points
    51 735
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par DevBaldwin Voir le message
    ...Dernière question, c'est peut-être expliqué dans ton blog, pourquoi ne parle-t-on pas de droits, mais de privilèges ou permission ?
    Un droit c'est quelque chose affecté directement au niveau système. par exemple droit en écriture en lecture en exécution. Mais dans une base de données ce n'est pas l'utilisateur qui lit ou écrit. C'est le moteur SQL ! L'utilisaeur ne peut que lancer des commandes pour lesquelles il a reçu une autorisation. On appelle cela privilège.
    Autrement dit l'utilisateur a le privilège de lancer telle ou telle commande sur tel ou tel objet....

    A +

  6. #6
    Membre régulier Avatar de DevBaldwin
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Un droit c'est quelque chose affecté directement au niveau système. par exemple droit en écriture en lecture en exécution. Mais dans une base de données ce n'est pas l'utilisateur qui lit ou écrit. C'est le moteur SQL ! L'utilisaeur ne peut que lancer des commandes pour lesquelles il a reçu une autorisation. On appelle cela privilège.
    Autrement dit l'utilisateur a le privilège de lancer telle ou telle commande sur tel ou tel objet....

    A +
    Ok c'est clair !

    Merci pour tout ça.

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

Discussions similaires

  1. [MVC] Partie variable sur toutes les vues
    Par djmic dans le forum Langage
    Réponses: 5
    Dernier message: 13/06/2015, 18h32
  2. Réponses: 6
    Dernier message: 12/07/2013, 12h32
  3. [2.x] Executer du code sur toutes les vues
    Par pmithrandir dans le forum Symfony
    Réponses: 9
    Dernier message: 19/02/2013, 20h29
  4. Menu Android sur toutes les vues
    Par auxiliaire dans le forum Composants graphiques
    Réponses: 3
    Dernier message: 08/09/2011, 16h54
  5. Réponses: 6
    Dernier message: 20/06/2009, 12h32

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