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

MS SQL Server Discussion :

Récupérer les utilisateurs avec le rôle dbcreator [2008R2]


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Points : 77
    Points
    77
    Par défaut Récupérer les utilisateurs avec le rôle dbcreator
    Bonjour à tous,

    Je souhaiterais savoir comment récupérer à l'aide d'une requête sql les utilisateurs avec le rôle dbcreator.

    Je n'ai rien trouvé sur le net qui correspond à mes besoins.

    Merci d'avance pour vos futures réponses.

  2. #2
    Membre éclairé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Décembre 2007
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Décembre 2007
    Messages : 327
    Points : 674
    Points
    674
    Par défaut
    Bonjour,

    Voici un peu de lecture :

    http://blog.developpez.com/sqlpro/p7..._et_utilisateu
    MCSA SQL SERVER |MCT | MVP Data Platform

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT U.name AS USER_NAME, R.name AS ROLE_NAME
    FROM   sys.database_principals AS U
           JOIN sys.database_permissions AS P
    	        ON U.principal_id = P.grantee_principal_id
    	   JOIN sys.database_principals AS R
    	        ON P.major_id = R.principal_id
    WHERE  U.owning_principal_id IS NULL
      AND  R."type" = 'R'
      AND  R.name = 'db_creator';
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre régulier
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Points : 77
    Points
    77
    Par défaut
    Merci pour vos réponses,

    La requête suivante retourne aucun résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT U.name AS USER_NAME, R.name AS ROLE_NAME
    FROM   sys.database_principals AS U
           JOIN sys.database_permissions AS P
    	        ON U.principal_id = P.grantee_principal_id
    	   JOIN sys.database_principals AS R
    	        ON P.major_id = R.principal_id
    WHERE  U.owning_principal_id IS NULL
      AND  R."type" = 'R'
      AND  R.name = 'db_creator';
    En effet, lorsque je vais voir la table sys.database_principals je ne trouve ni mon utilisateur ni le rôle db_creator.

    En cherchant plus, je suis allé voir dans la table sys.server_principals dans laquelle je retrouve bien les infos souhaités.

    J'ai essayé d'adapter la requête comme suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT U.name AS USER_NAME, R.name AS ROLE_NAME
    FROM   sys.server_principals AS U
           JOIN sys.server_permissions AS P
    	        ON U.principal_id = P.grantee_principal_id
    	    JOIN sys.server_principals AS R
    	        ON P.major_id = R.principal_id
    AND U."type" = 'R'
    AND U.name = 'dbcreator'
    La requête retourne encore aucun résultat.

    Avez-vous des idées ?

    Merci.

  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 763
    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 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Mea culpa : db_creator est une rôle de serveur affectable à un comptes de connexion (login) => sys.server_principals donc, vous avez bien fait !

    maintenant tout dépen de ce que vous voulez :
    1) les entité de sécurités ("principals") ayant le privilège db_creator : c'est la requête que je vous ais donné !
    2) les entités de sécurité membre du rôle "dbcreator" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT L.name AS LOGIN_NAME, R.name AS ROLE_NAME
    FROM   sys.server_principals AS L
           JOIN sys.server_role_members AS RM
    	        ON L.principal_id = RM.member_principal_id
    	   JOIN sys.server_principals AS R
    	        ON RM.role_principal_id = R.principal_id
    WHERE L.owning_principal_id IS NULL
    AND R."type" = 'R'
    AND R.name = 'dbcreator'
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  6. #6
    Membre régulier
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Points : 77
    Points
    77
    Par défaut
    Super, ça me retourne le résultat voulu !

    Juste une petite précision, sur Sql server 2008 R2 la ligne suivante me génère une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE L.owning_principal_id IS NULL
    Effectivement, la colonne "owning_principal_id" n'existe pas dans la table "sys.server_permissions".
    Si je supprime cette ligne, je retrouve tout de même le même résultat.

    L'absence de cette ligne peut-elle avoir un impact sur le résultat final ?

    Encore merci pour votre aide.

  7. #7
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous pouvez supprimer cette ligne en toute quiétude.

    @++

  8. #8
    Membre régulier
    Profil pro
    Développeur en alternance
    Inscrit en
    Février 2011
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur en alternance

    Informations forums :
    Inscription : Février 2011
    Messages : 107
    Points : 77
    Points
    77
    Par défaut
    Super,

    Merci à tous pour votre participation .

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/03/2011, 10h44
  2. Récupérer les utilisateurs d'un fichier
    Par capblans dans le forum Windows
    Réponses: 0
    Dernier message: 20/08/2007, 16h19
  3. Réponses: 4
    Dernier message: 30/03/2007, 18h42
  4. Récupérer les fonctions avec cloneNode ?
    Par Alexino2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/02/2007, 19h09
  5. Réponses: 3
    Dernier message: 04/08/2006, 11h47

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