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 :

Autorisations sur instances


Sujet :

Administration SQL Server

  1. #1
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut Autorisations sur instances
    Bonjour à tous...
    En essayant de voir les autorisations d'un user sur une database de production, quelle ne fut pas ma surprise de ne pas trouver le USER dans Mabase/Sécurité/utilisateur mais de trouver ce USER dans les propriétés du 'noeud' du serveur (ou instance) dans l'onglet 'Connexion où roles'...
    Ce qui reviendrait à dire qu'il y a deux types de USER, ceux de la database et ceux du noeud...
    Pourquoi a t'on choisi de creer le user dans le noeud serveur et pas dans les users de la databse ?
    Meci pour vos réponses...

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Il est évident qu'avant de pouvoir se connecter à une base, un utilisateur doit pouvoir se connecter à l'instance.

    Ensuite, se rappeler qu'il y a deux types d'authentfication disponible sous Sql Server: Windows (toujours) donc avec les logins "normaux" plus l'authentification Sql Server(optionnelle) avec des noms d'utilisateurs spécifiquement gérés par Sql Server.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Je comprend pas la question...
    Que te retourne la query suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    xp_logininfo '<domaine>\<user>', 'all'

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 758
    Points : 1 069
    Points
    1 069
    Par défaut
    Citation Envoyé par genio Voir le message
    Ce qui reviendrait à dire qu'il y a deux types de USER, ceux de la database et ceux du noeud...
    Tu confonds user et login. Un login est déclaré au niveau de l'instance et permet de s'authentifier. Un user est rattaché à ce login dans le contexte d'une base, et permet de manipuler des objets de la base (tables, vues, procédures stockées). Pour faciliter la lecture, ils portent souvent le même nom, d'où ta confusion. cf http://blogs.msdn.com/b/lcris/archiv...&wa=wsignin1.0
    David B.

  5. #5
    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
    Citation Envoyé par genio Voir le message
    En essayant de voir les autorisations d'un user sur une database de production, quelle ne fut pas ma surprise de ne pas trouver le USER dans Mabase/Sécurité/utilisateur mais de trouver ce USER dans les propriétés du 'noeud' du serveur (ou instance) dans l'onglet 'Connexion où roles'...
    Est ce qu'en utilisant ce compte tu arrives à te connecter d'une part au serveur et d'autre part à une base données ?
    Etienne ZINZINDOHOUE
    Billets-Articles

  6. #6
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    En fait je me suis rendu compte qu'un logon pouvait servir de user sur une database... Je m'explique :
    Nous avons un logon 'toto' qui existe dans /propriété du serveur/Atorisations/nom/ avec un type 'connexion' => OK
    cela dans l'instance du serveur...
    Et quand je me connecte sur ma baseA avec ce logon, je m'aperçevait que dans securite/utilisateur/ de ma database BaseA, je n'avais pas de 'toto'...
    Donc dois-je en déduire qu'un login, défini au niveau 'instance server' suffit pour se logger à une database de cet instance ?
    Ou faut-il toujours le couple LOGIN/USER et dans ce cas où puis-je trouver le USER 'toto' dans ma database BaseA
    En espérant que je suis clair, merci pour vos réponse...

  7. #7
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    En fait je me suis rendu compte qu'un logon pouvait servir de user sur une database
    Je dirais la même chose que dbaffaleuf.
    Vous confondez LOGIN et USER sur un serveur de bases de données.

    Pour se connecter à une instance il faut obligatoirement un compte de connexion ou LOGIN. Vous gérez la sécurité au niveau du serveur (les droits paramétrés sont au niveau serveur.

    Ensuite pour pouvoir accéder à une base de données il faut également un utilisateur qui ne porte pas forçemment le même nom que le compte de connexion. Vous autorisez donc via un utilisateur l'accès à une base de données et vous pouvez paramétrez les droits au niveau de la base de données. Nous sommes donc sur 2 niveaux différents de privilèges.

    Bien entendu un utilisateur doit être mappé à un compte de connexion .. mais ceci n'est pas forcement obligatoire selon ce que l'on veut faire.

    ++

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    21 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 481
    Points : 51 635
    Points
    51 635
    Billets dans le blog
    2
    Par défaut
    Vous mélangez beaucoup de concepts... A commencer par les notions de login, connexion, utilisateurs, session et authentification.

    Lisez l'article que j'ai écrit à ce sujet :
    http://blog.developpez.com/sqlpro/p7...et-utilisateu/
    Vous commencerez à comprendre de quoi votre problème relève !!!!

    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/ * * * * *

  9. #9
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    merci pour vos réponses et pour l'article de SQLpro
    En fait, peut-être me suis-je mal exprimé car ma questione est la suivante : Pour qu'un USER puisse utiliser une database quelconque, la création du LOGIN de ce user est-elle suffisante, où faut-il toujours avoir le couple LOGIN/USER pour acceder à une database...

    Merci pour votre réponse

  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 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 481
    Points : 51 635
    Points
    51 635
    Billets dans le blog
    2
    Par défaut
    Il faut toujours avoir un couple LOGIN / USER pour qu'un utilisateur externe puisse accéder à des commandes dans une base SQL.

    La sécurité (c'est à dire les "autorisations") étant de deux niveaux :
    celles afférentes au serveur, qui sont affectées au LOGIN
    celles afférentes à la base, qui sont affectées à l'utilisateur SQL dans la base visée.

    Exemple... Si j'ai une base DB_BIBLIO et que je désire créer un accès à cette base pour une personne nommée BOB, pour lui donner la possibilité de lire toutes les tables, réaliser des sauvegardes et la restauration de la base je dois faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -- création niveau serveur du compte de connexion pour BOB :
    USE master;
    GO
    CREATE LOGIN LOG_BOB 
       WITH PASSWORD = '???',
            DEFAULT_DATABASE = DB_BIBLIO;
    GO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -- création niveau base DB_BIBLIO de l'utilisateur SQL pour BOB :        
    USE DB_BIBLIO;
    GO
     
    CREATE USER USR_BOB 
       FOR LOGIN LOG_BOB;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -- assignation de l'autorisation CREATE DATABASE pour la restauration de base de données 
    -- au niveau du compte de connexion de BOB :
    USE master;
    GO
    GRANT CREATE ANY DATABASE TO LOG_BOB;
    GO
    -- nota : restaurer une base de données revient à en créer une !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    -- assignation de l'autorisation BACKUP DATABASE pour la sauvegarde de base de données 
    -- au niveau de l'utilisateur SQL BOB :
    USE DB_BIBLIO;
    GO
    GRANT BACKUP DATABASE TO USR_BOB;
    GO
    -- nota : sauvegarder une base de données est propre à la base considérée...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    -- assignation de l'autorisation SELECT sur l'ensemble des tables de la base
    -- au niveau de l'utilisateur SQL BOB :
    USE DB_BIBLIO;
    GO
    GRANT SELECT TO USR_BOB;
    GO
    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/ * * * * *

  11. #11
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    Merci Frédéric pour votre réponse... mais cela revient en fait à ma question du 02/09/2010 à 16H03...
    1) J'accède à mon management studio via une 'authentification sql Server' avec connexion sa/mot_de_Passe =>

    2) J'ai une entité (je pense que c'est un logon) TOTO qui, quand je 'clique droit' sur mon serveur (Propriété du serveur/autorisation/connexion où rôle/) existe avec le nom TOTO et un type 'connexion =>

    3) Ensuite je déroule l'arborescence du serveur... et quand je clique sur ma BaseA/sécurité/utilisateur/,stupeur, je ne vois pas de TOTO...

    Alors que l'on peut se connecter en direct sur cette database avec TOTO...

    Vu qu'il faut le couple LOGON/USER je devrait voir mon user TOTO dans ma BaseA non ?

    Je ne sais pas si je me fait bien comprendre mais je ne vois pas pourquoi le user TOTO n'existe pas dans les utilisateurs ma BaseA...

    Suis-je neuneu ?

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    21 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 481
    Points : 51 635
    Points
    51 635
    Billets dans le blog
    2
    Par défaut
    Il existe des comptes de connexion dont le pouvoir au niveau serveur est sysadmin, ce qui signifie qu'ils ont la possibilité de tout faire dans toutes les bases. Dans ce cas, la plupart du temps l'utilisateur SQL sous_jacent est dbo.

    Vous pouvez voir facilement cela en faisant la requête suivante, après vous être connecté avec ce compte et dans la base considérée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT USER AS UTILISATEUR_SQL, SYSTEM_USER AS COMPTE_DE_CONNEXION
    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/ * * * * *

  13. #13
    Membre habitué
    Homme Profil pro
    CMA-CGM
    Inscrit en
    novembre 2005
    Messages
    531
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : CMA-CGM
    Secteur : Transports

    Informations forums :
    Inscription : novembre 2005
    Messages : 531
    Points : 137
    Points
    137
    Par défaut
    Merci Sqlpro pour vos explications...

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    21 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 481
    Points : 51 635
    Points
    51 635
    Billets dans le blog
    2
    Par défaut
    A noter que gérer la sécurité en ayant que des comptes sysadmin est une hérésie !!!!!

    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/ * * * * *

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/07/2006, 13h01
  2. [Débutant(e)] Autorisations sur procédures stockées
    Par boulete dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/04/2006, 18h08
  3. script autorisation sur fichier
    Par oasis_5 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/03/2006, 16h28
  4. Autorisations sur fichier access
    Par dahu17 dans le forum Access
    Réponses: 9
    Dernier message: 21/02/2006, 18h39
  5. Modifier les autorisations sur les fichiers
    Par SaeZ dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 24/10/2005, 12h08

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