Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
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 22/10/2011, 17h32   #1
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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 :
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 :
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 !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 07h43   #2
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
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 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
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...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 11h09   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
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 :
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 :
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 :
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 :
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 :
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 :
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 :
1
2
3
USE DB_RH;
GO
GRANT EXECUTE ON dbo.P_CLOTURE_ANNUELLE TO USR_OLIBARA;
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 11h52   #4
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
SUPER !

Et tres clair !
Merci SQLPro
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 21h39   #5
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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 !
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2011, 22h59   #6
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 139
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 139
Points : 2 467
Points : 2 467
Envoyer un message via Yahoo à zinzineti
Vérifier que l'Authentification SQL Server est cochée votre serveur local : Clique-droit sur l'instance > Propriétés > Sécurité ...
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 00h15   #7
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 06h30   #8
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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 :
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'
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 06h58   #9
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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 :
sp_change_users_login 'update_one'
et dans mon cas

Code :
1
2
3
 
USE xxx
sp_change_users_login 'update_one', 'lf', 'lf'
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 14h03   #10
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Ceci est l'ancienne version 2000, pour refaire le mapping entre les comptes de connexion et les utilisateurs SQL, il vaut mieux utiliser :
Code :
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 +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 16h14   #11
Membre Expert
 
Inscription : octobre 2007
Messages : 3 948
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 3 948
Points : 1 905
Points : 1 905
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
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
olibara est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web