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 :

De nouveau perdu avec les user, login et password


Sujet :

MS SQL Server

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut De nouveau perdu avec les user, login et password
    Bonjour

    Veuillez excuser mon incompétence en ce qui concerne les droits et la configuration d'un Server Sql (un metier a part entiere)

    Voila ! : sur un serveur de prod j'ai un login et un password identique pour acceder a une Database
    disons xx

    J'essaye donc d'assigner ces memes user et pasword sur mon serveur local

    J'ai essayé avec les propriétés dans SSMS : impossible de retrouver ou ca se trouve

    j'essaye donc de faire un script mais je m'y perds un peu

    Si je me souviens bien je dois d'abord creer un login et un password associé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE LOGIN xx WITH PASSWORD = 'xx'
    ,CHECK_POLICY = OFF
    ,DEFAULT_DATABASE = [MaDatabase] 
    GO
    Ensuite il faut je pense un user mais je ne comprends pas pourquoi ?
    A quoi sert de specifier un user (qui d'ailleurs est affiché en erreur dans SSMS) pour simplement associer un Login a une DB ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE [MaDatabase]; 
    CREATE USER 'xx' FOR LOGIN xx; 
    GO
    bref je continue a trouver tout cela completement obscur et je pense qu'il sera difficille d'y arriver et encore moins de comprendre sans votre aide

    Merci pour votre patience
    Et si un jour un ingénieur éclairé parvient a creer un Wizard qui permet de bien faire cela en expliquant clairement la nécessité et le role de chaque etape je lui envoie de chocolats !

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Salut Olibara.

    Tu crées une connexion à ton serveur de base de données...
    Ensuite tu crée des User mappés sur ce login sur tes bases et c'est sur ces derniers que tu affines tes droits sur chacune des bases de données...

  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 862
    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 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Je me connecte à UN SERVEUR => compte de connexion
    Je navigue dans une ou plusieurs bases de données => un USER dans chaque base.

    Ce qui permet de donner des privilèges au niveau serveur au compte de connexion et au niveau base à l'utilisateur SQL.

    Au passage nommer l'utilisateur SQL dans une base avec le même nom que celui du compte de connexion est HAUTEMENT STUPIDE, car cela entraine la confusion ! (c'est malheureusement ce que fait ml'IHM SSMS par défaut...)

    Un petit exemple :

    1) création d'un compte de connexion au serveur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE master;
    GO
    CREATE LOGIN CNX_OLIBARA WITH PASSWORD = 'olibara';
    2) création d'un utilisateur dans la base DB_RH associé au compte de connexion CNX_OLIBARA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE DB_RH;
    GO
    CREATE USER USR_OLIBARA FROM LOGIN CNX_OLIBARA;
    3) création d'un utilisateur dans la base DB_COMPTA associé au compte de connexion CNX_OLIBARA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE DB_COMPTA;
    GO
    CREATE USER USR_OLIBARA FROM LOGIN CNX_OLIBARA;
    4) octroi de privilèges au compte de connexion CNX_OLIBARA pour faire des restaurations de bases de données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE master;
    GO
    GRANT CREATE ANY DATABASE TO CNX_OLIBARA;
    En effet la restauration d'une base de données c'est la création d'une nouvelle base avec placement des anciennes données.

    5) octroi de privilèges au niveau base pour l'utilisateur SQL USR_OLIBARA dans la base DB_RH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE DB_RH;
    GO
    GRANT ALL ON DATABASE::DB_RH TO USR_OLIBARA;

    6) octroi de privilèges au niveau schéma pour l'utilisateur SQL USR_OLIBARA dans la base DB_COMPTA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE DB_RH;
    GO
    GRANT SELECT ON SCHEMA::dbo TO USR_OLIBARA;

    7) octroi de privilèges au niveau objet pour l'utilisateur SQL USR_OLIBARA dans la base DB_COMPTA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE DB_RH;
    GO
    GRANT EXECUTE ON dbo.P_CLOTURE_ANNUELLE TO USR_OLIBARA;
    A +

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    SUPER !

    Et tres clair !
    Merci SQLPro

  5. #5
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Bonsoir SQL Pro

    Je croyais avoir compris asser pour pouvoir me debrouiller mais je souhaite maintenant reproduire un environnement sur mon PC Portable et je suis a nouveau coincé

    Mon serveur a (entre autre) un login 'lf' avec un pwd 'lf' j'ai désigné la default db xxx

    Cette DB qui existait dispose déja d'un user 'lf'

    Mais impossible d'acceder a la DB avec le login 'lf' 'lf'
    Impossible aussi d'effacer ce user 'lf'
    Si je regarde les proprietes du user lf de la db xxx avec ssms
    il a db_accessadmin et db_owner

    Ou peut etre le problème ?
    Désolé mais les droits sur SQL Server c'est vraiment pas mon truc !

  6. #6
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    Vérifier que l'Authentification SQL Server est cochée votre serveur local : Clique-droit sur l'instance > Propriétés > Sécurité ...

  7. #7
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Citation Envoyé par zinzineti Voir le message
    Vérifier que l'Authentification SQL Server est cochée votre serveur local : Clique-droit sur l'instance > Propriétés > Sécurité ...
    Oui je suis en mode mixte

  8. #8
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci zinzinetti mais je n'ai toujours pas de solution

    1- Si je me connecte avec WindowsAuthentification pas de probleme et je sais acceder a la base xxx

    2- Si je me connecte en SQL Server Authentification ave 'lf' 'lf' j'ai le message Cannot Open User Default Database (error 4064)

    3- Je peux me connecter SQL Server Authentification ave 'lf' 'lf' mais en changeant le Default Database (option de ssms) mais je ne peux alors pas ouvrir ma base xxx

    4- Comment puise correctement associer le user lf de ma base avec le login lf

    Il me semble que depuis les premiers temps d'acces ou c'etait déja une misére, MS n'a rien fait pour améliorer la gestion les User / Login sur une BDD


    N.B. J'ai aussi essayé une des suggestions de SQLPro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    USE xxx;
    GO
    GRANT ALL ON DATABASE::xxx TO lf;
    Mais j'ai un message disant que 'ALL' est deprecated et ca n'apporte rien de plus


    Merci en tout cas si quelqu'un peut comprendre ce qui se passe et ce que je peux faire pour pour acceder a la base avec le user login 'lf'

  9. #9
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Ouf !

    Grace a l'article ci-joint j'ai rouvé la solution


    http://www.akadia.com/services/sqlsr...and_users.html

    Si ca peut aider d'autres, La commande magique c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_change_users_login 'update_one'
    et dans mon cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Use xxx
    sp_change_users_login 'update_one', 'lf', 'lf'

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 862
    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 862
    Points : 53 015
    Points
    53 015
    Billets dans le blog
    6
    Par défaut
    Ceci est l'ancienne version 2000, pour refaire le mapping entre les comptes de connexion et les utilisateurs SQL, il vaut mieux utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER USER lf WITH LOGIN =  lf;
    Avant le copier du code Internet et le lancez dans votre base, vérifiez le avec l'aide en ligne. Vous y auriez trouvé la phrase suivante :
    "
    Mappe un utilisateur de base de données existant à une connexion SQL Server. Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez plutôt ALTER USER.
    "


    A +

  11. #11
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci SQLPro

    D'un autre cote je cherchais une solution a un problème pontuel et sp_change_users_login a satisfait le besoin sans devoir etre integré dans du code.
    Mais je retiens le ALTER User

Discussions similaires

  1. Perdu avec les headers
    Par bluemartini dans le forum Débuter
    Réponses: 11
    Dernier message: 05/02/2009, 15h28
  2. De nouveau perdu avec les graphics
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 24/03/2008, 23h21
  3. Perdu avec les vhostS
    Par tonf dans le forum Apache
    Réponses: 12
    Dernier message: 27/11/2007, 17h34
  4. [C# ado.NET] perdu avec les datarelations
    Par tatayet_le_felee dans le forum Accès aux données
    Réponses: 9
    Dernier message: 12/06/2007, 14h09
  5. [INSTALL][DB2] problème avec les users
    Par fabszn dans le forum DB2
    Réponses: 1
    Dernier message: 03/08/2006, 20h24

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