Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
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 10/02/2011, 17h26   #1
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
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
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h37   #2
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
L'instance a été redémarrée ?
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 17h42   #3
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
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
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 19h10   #4
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
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) ?
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 11h55   #5
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
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 :
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 :
sqlcmd -S tcp:machine,port
Merci de ton aide

jeeps64
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 14h14   #6
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
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 :
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.
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 15h06   #7
Nouveau Membre du Club
 
Jean-Philippe SARASY
Inscription : mars 2007
Messages : 131
Détails du profil
Informations personnelles :
Nom : Jean-Philippe SARASY

Informations forums :
Inscription : mars 2007
Messages : 131
Points : 38
Points : 38
D'apres ce que tu dis :
Citation:
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.
Malheureusement j'ai la preuve du contraire :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
P:\>sqlcmd -S np:\\machine\pipe\MSSQL$InstanceName\sql\query
1> select * from sysprocesses where spid=@@spid
2> go
spid   kpid   blocked waittype waittime             lastwaittype
     waitresource


                      dbid   uid    cpu         physical_io          memusage
 login_time              last_batch              ecid   open_tran status
                 sid

                                hostname

 program_name
                                                  hostprocess cmd              n
t_domain
                                                nt_username

                 net_address  net_library  loginame

            context_info


                               sql_handle                                 stmt_s
tart  stmt_end    request_id
------ ------ ------- -------- -------------------- ----------------------------
---- ---------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------- ------ ------ ----------- -------------------- -----------
 ----------------------- ----------------------- ------ --------- --------------
---------------- ---------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------- ------------------------------------------------
--------------------------------------------------------------------------------
 -------------------------------------------------------------------------------
------------------------------------------------- ----------- ---------------- -
--------------------------------------------------------------------------------
----------------------------------------------- --------------------------------
--------------------------------------------------------------------------------
---------------- ------------ ------------ -------------------------------------
--------------------------------------------------------------------------------
----------- --------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------ ------------------------------------------ ------
----- ----------- -----------
    52   1124       0 0x0000                      0 MISCELLANEOUS



                           1      1           0                    0           2
 2011-02-11 15:01:21.670 2011-02-11 15:01:21.673      0         0 runnable
                 0x010500000B4E5ED0BF040000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000 FR9095798D

 SQLCMD
                                                  4732        SELECT           DOM
                                                monuser

                 001E0B9D84D7 Named Pipes  DOM\monuser

            0x000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000 0x010001009C27882630D279880000000000000000
    0          -1           0

(1 rows affected)

Comme tu le précise, je vais voir avec le support

Merci encore de ton aide

PS : Y a encore des traces de ton passage chez N@t€xis ; ))). Je viens de sortir de chez eux apres 3 ans de bon et loyaux services

Bon weekend

jeeps64
jeeps64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 15h28   #8
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Non justement (j'ai dû mal m'exprimer ). Si tu forces le protocole, sqlcmd ne va pas vérifier s'il est activé ou non au niveau du client donc ça va marcher.

En revanche, si tu fais le même test avec sqlcmd -U*** -P*** -SInstanceName et tous les protocoles désactivés côté client, tu ne pourras pas te connecter.

N@t€xis: Je me souviens effectivement avoir entendu ton nom cité par Mohamed (SAYAD) à l'époque. Bon week end !
__________________
David B.
dbaffaleuf 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 11h59.


 
 
 
 
Partenaires

Hébergement Web