OVH Cloud OVH Cloud

Comment récupérer le Nt login name d'un utilisateur connecté via une authentification Sql Server

14 réponses
Avatar
TedIF
Bonjour,

Comment peut-on en transact-SQL récupérer l'équivalent de ce qui est
affiché dans la colonne NTUserName d'une trace dans Sql Server Profiler
(version SQL 2008) ?

Merci d'avance pour votre aide.

--

Dominique

4 réponses

1 2
Avatar
Med Bouchenafa
>> mais ne va-t-on pas ainsi récupérer le compte sous lequel s'exécute le
service Sql Server ?





C'est exact
D'autant plus que l'utilisateur connecté est peut-etre distant et n'a aucun
compte sur le serveur en question
C'est donc effectivement du coté client qu'il faut regarder

SELECT nt_domain, nt_username, loginame
FROM sys.sysprocesses WHERE spid = @@SPID

Bien cordialement
Med Bouchenafa

"Fred" wrote in message
news:
"Med Bouchenafa" a écrit dans le message de
groupe de discussion :


Bonjour,

SQL Server ne possede pas cette information
Par contre tu peux facilement faire un xp_cmdshell et recuperer les
variables d'environnement
USERDOMAIN et USERNAME



Je n'utilise pas xp_cmdshell car je doit garder du code compatible avec la
version Express, mais ne va-t-on pas ainsi récupérer le compte sous lequel
s'exécute le service Sql Server ?

--
Fred



Avatar
TedIF
zoltix avait écrit le 10/02/2010 :
SQL SERVER
authentication



en SQL SERVER authentication

--

Dominique
Avatar
TedIF
Fred a exprimé avec précision :

"TedIF" a écrit dans le message de groupe de discussion
:

Oui je sais bien mais lorsqu'un utilisateur se connecte à un serveur SQL
avec authentification Sql server, il a ouvert avant une session Windows sur
sa machine avec son "login Windows" et un mot de passe. Ce que je cherche à
récupérer dans SQl Server, c'est son login Windows et non pas son Login
Sql.



Ce n'est pas possible.
Une solution qui permettrait de donner cette information à SQL Server serait
d'utiliser un mot clé de la chaîne de connexion tel que «Application Name»
pour y stocker le login windows (et le récupérer avec APP_NAME()). Mais
attention à la sécurité.
Cet ajout peut aussi se faire avec SSMS dans les options de la boîte de
dialogue de connexion.



Oui c'est ce que je pensais faire, mais ceci ne peut être mis en place
qu'avec les programmes que nous avons développés, mais pas avec les
progiciels achetés sans les sources.

Merci quand même

--

Dominique
Avatar
TedIF
Med Bouchenafa avait énoncé :
mais ne va-t-on pas ainsi récupérer le compte sous lequel s'exécute le
service Sql Server ?





C'est exact
D'autant plus que l'utilisateur connecté est peut-etre distant et n'a aucun
compte sur le serveur en question
C'est donc effectivement du coté client qu'il faut regarder

SELECT nt_domain, nt_username, loginame
FROM sys.sysprocesses WHERE spid = @@SPID

Bien cordialement
Med Bouchenafa



Super ! NT_USERNAME me retourne bien le login windows tant recherché.

Un grand merci à Med, Fred et Zoltix.

--

Dominique
1 2