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 :

[2017] Compte Active Directory, Linked Server et vue cross database


Sujet :

Administration SQL Server

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut [2017] Compte Active Directory, Linked Server et vue cross database
    Bonjour,

    J'ai le scénario suivant :

    L'utilisateur "monuser@mondomain.local" doit se connecter à partir d'un serveur (IIS) APPSRV à une instance SQL Server hébergée sur BDDSRV.
    Sur cette instance, je dois mettre un serveur lié ERPSRV qui contient une base de données MYBDD contenant une vue dbo.ma_vue qui effectue un SELECT sur des tables d'une autre base de ERPSRV "ERP".

    Le but du jeu, c'est, dans ces conditions, de pouvoir exécuter une requête SELECT sur la vue.

    J'ai créé, non sans mal, le serveur lié (l'utilisateur sysadmin de BDDSRV n'a pas accès au serveur ERPSRV, et l'utilisateur monuser@mondomain.local a le rôle "public" sur le serveur BDDSRV et ERPSRV). Du coup j'ai des erreurs quand je crée le serveur lié, mais si je l'interroge avec mon user, ça a fini par passer.

    Ensuite, pour des raisons de sécurité, on souhaite masquer complètement la base "ERP" du serveur "ERPSRV" à l'utilisateur monuser@mondomain.local.
    Sauf que si on ne le mappe pas à la base ERP, impossible d'interroger la vue dbo.mavue qui se trouve dans la base MYBDD.
    Et même pire que ça, même une fois que l'utilisateur a le rôle "public" dans la base ERP, et qu'on a bien donné le droit "SELECT" sur MYBDD.dbo.mavue on n'arrive toujours pas à interroger la vue sans donner explicitement le droit SELECT sur les tables de la base ERP utilisées par la vue MYBDD.dbo.mavue

    Et là ça nous ennuie beaucoup : à la base, on ne veut pas que l'utilisateur monuser@mondomain.local n'ait même connaissance de l'existence de la base ERP.

    J'ai dû rater un truc, car habituellement, si j'interdit à un utilisateur de lire dans une table, mais que je l'autorise à lire une vue qui utilise cette table, j'arrive sans souci à lire la vue.
    => Alors pourquoi quand il s'agit vue sur un serveur lié qui pointe sur une autre base ça ne fonctionne pas de la même manière ?

    Enfin, et là c'est autant IIS que SQL Server, j'arrive pas à comprendre un comportement de Windows et/ou SQL Server.
    Si depuis BDDSRV j'ouvre management studio et que je me connecte à l'instance locale avec l'utilisateur "monuser@mondomain.local", je peux exécuter la requête suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from ERPSRV.MYBDD.dbo.mavue

    Ca fonctionne (une fois que j'ai autorisé mon user à voir la terre entière)

    Si depuis APPSRV j'exécute une page ASPX qui se connecte directement à ERPSRV dans la base master par exemple, avec le compte "monuser@mondomain.local" la requête suivante fonctionne :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from MYBDD.dbo.mavue

    Si toujours depuis la même page, je me connecte toujours avec le même compte, cette fois à BDDSRV dans la base master, et que je tente d'utiliser le serveur lié :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from ERPSRV.MYBDD.dbo.mavue

    J'obtiens un message comme quoi "AUTORITE NT\Anonymous" n'a pas le droit de se connecter à la base de donnée.
    => Il sort d'où ce Anonymous ?

    J'avoue que je ne comprends pas du tout ce qu'il se passe.

    BDDSRV est en SQL Server 2017
    ERPSRV est en SQL Server 2012

    Tout le monde est dans le même domaine/sous-réseau
    On ne jouit bien que de ce qu’on partage.

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    J'obtiens un message comme quoi "AUTORITE NT\Anonymous" n'a pas le droit de se connecter à la base de donnée.
     => Il sort d'où ce Anonymous ?
    Tu es dans un cas typique de ce qu'on appelle le double saut avec nécessite de configuration la délégation Kerberos

    Dans ton cas tu veux faire "passer" l'identité de ton utilisateur Windows d'un bout à l'autre de la chaîne IIS --> ERPSRV --> BDDSRV et cela requiert une configuration spécifique.

    Tu peux aller faire un tour sur un article que j'ai écrit il y a un moment sur le sujet et qui t'explique comment faire ou utiliser un outil Microsoft conçu spécialement pour cela qui est sorti depuis (bien après l'écriture de ce fameux article).

    ++

  3. #3
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Merci beaucoup pour ta réponse
    Je vais tester ça dès que je peux !
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. [SQL-Server] Connexion à SQL SERVER 2008 avec compte active directory (PHP >5.6)
    Par Piou2fois dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 04/02/2016, 15h42
  2. Réponses: 2
    Dernier message: 05/03/2015, 14h35
  3. Gestion des comptes active directory avec asp
    Par sebinator dans le forum ASP
    Réponses: 1
    Dernier message: 30/10/2008, 19h11
  4. Réponses: 2
    Dernier message: 07/10/2008, 08h02
  5. [pywin32] Activer/Désactiver compte Active Directory
    Par Dimontviloff dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 01/12/2004, 17h30

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