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 :

SQLServer 2008 : Named pipe désactivé mais connexion possible avec named pipe


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut SQLServer 2008 : Named pipe désactivé mais connexion possible avec named pipe
    Bonjour

    On me demande de désactiver les connexions via les pipe nommés sur des postes clients.
    Je les ai désactivé dans le configuration manager / Client Protocols et cela fonctionne toujours
    Cela ne fonctionne pas si je le désactive au niveau du SQL Server sur lequel je veux me connecter

    Quelqu'un connait-il le problème ?

    Merci de toute information

    Jeeps64

  2. #2
    Membre émérite
    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
    Par défaut
    L'instance a été redémarrée ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    oui j'ai redémarré l'instance pour prise en compte du parametre named pipe disable
    Le probleme, c'est que je voudrais, si c'est possible, désactiver le protocole named pipe au niveau d'un client pour empecher au client de se connecter via np à tous nos SQLServer

    jeeps64

  4. #4
    Membre émérite
    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
    Par défaut
    Quand tu dis que ça fonctionne toujours, comment tu testes la connexion ? Comment sais-tu que tu es bien sur le protocole NP (select net_transport from sys.dm_exec_connections where session_id=@@spid) ? Est-ce une connexion locale où depuis le client ? Quel login de connexion utilises-tu (SQL ou Windows) ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 137
    Par défaut
    Quand je lance le code suivant sur mon poste client, cela fonctionne alors que j'ai désactiver le protocole 'named pipe' sur le client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -S np:\\machine\pipe\MSSQL$instancename\sql\query
    J'ai le même conportement quand je désactive TCP dans Configuration Manager / Client Protocols. En effet, j'arrive quand même à me connecter avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlcmd -S tcp:machine,port
    Merci de ton aide

    jeeps64

  6. #6
    Membre émérite
    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
    Par défaut
    Je pense que la logique n'est pas la même lorsque tu forces le protocole (ie -Stcp: / -Snp: / -Slpc: ) et quand tu le laisses choisir (-S INSTANCENAME). En traçant les appels systèmes on voit que le chemin d'exécution n'est pas du tout le même. Par exemple, si tu désactives tous les protocoles au niveau du client, et que tu testes en indiquant simplement à SQL Server de résoudre le nom de connexion (-S INSTANCENAME), tu verras que tu tombes sur une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HResult 0xFFFFFFFF, niveau 16, état 1
    Interfaces réseau SQL : Erreur d'obtention de la liste des protocoles activés à partir du Registre [xFFFFFFFF].
    En fait il bute sur la lecture d'une clé de registre (HKLM\SOFTWARE\Microsoft\MSSQLServer\Client\SNI9.0\ProtocolOrder) qui contient la liste et l'ordre des protocoles supportés côté client. Par exemple (sm tcp np) si les protocoles activés sont Shared Memory + TCP + Named Pipes dans cet ordre. Lorsque tous les protocoles sont désactivés, la clé ne contient rien et sqlcmd sort avec cette erreur.

    Si tu traces la connexion avec -Snp:\\<blabla> tu verras qu'il ne passe pas par la lecture de cette clé donc il ne se préoccupe pas du tout de savoir si le protocole est activé ou non.

    Morale de l'histoire, je dirais que tant que tu utilises une chaîne de connexion sans forcer le protocole, le client SQL s'appuie sur la liste des protocoles activés côté client. Si tu forces le protocole, il se connecte directement. Évidemment c'est une supposition, il faudrait se faire confirmer ça par le support.

    Donc désactives NP côté client et tant que ceux-ci se connectent en utilisant une méthode qui ne force pas le protocole, ils se connecteront soit en TCP ou alors la connexion sera en échec.

Discussions similaires

  1. [SQL-Server] Connexion php5 avec sqlserver 2008
    Par sabari dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/05/2015, 23h41
  2. SQLSERVER 2008 : Connexions Actives
    Par ducho dans le forum Administration
    Réponses: 3
    Dernier message: 03/10/2012, 15h24
  3. User inexistant mais connexion en sysdba possible
    Par miltone dans le forum Débuter
    Réponses: 4
    Dernier message: 09/11/2011, 16h19
  4. Fermeture de connexion avec SQLServer 2008
    Par jflozevis dans le forum Hibernate
    Réponses: 0
    Dernier message: 26/03/2010, 14h49
  5. Activer / Désactiver une connexion réseau
    Par Neilos dans le forum Windows
    Réponses: 6
    Dernier message: 25/09/2006, 14h42

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