PDA

View Full Version : به دست آوردن NT UserName



Mohsen_4194
دوشنبه 17 بهمن 1384, 14:31 عصر
چگونه می توان نام کاربر (NT Username) را از طریق SQL بدست آورد؟

Elham_gh
دوشنبه 17 بهمن 1384, 19:17 عصر
این کد نام کاربر سیستمی جاری را می دهد البته اگر از Windows Authentication استفاده شده باشد.


select system_user

Mohsen_4194
سه شنبه 18 بهمن 1384, 20:21 عصر
اگر از Windows Authentication استفاده نشده باشد چی؟

AminSobati
چهارشنبه 19 بهمن 1384, 01:28 صبح
باز هم جواب میده

Mohsen_4194
یک شنبه 23 بهمن 1384, 13:45 عصر
سلام آقای ثباتی
اگر از SQL Authentication استفاده شده باشد نام کاربر SQL Server را می دهد نه NT Username

AminSobati
دوشنبه 24 بهمن 1384, 00:38 صبح
سلام محسن جان، من تازه متوجه منظور شما شدم.
بدست آوردن نام کاربری که به ویندوز لاگین کرده (صرف نظر از لاگینش به SQL Server) در حقیقت یعنی دسترسی به Resourceهای ویندوز. اگر در SQL Server 2005 کار میکنید، خیلی راحت میتونستین یک CLR Function بنویسید برای این کار. ولی در 2000، میتونین یک COM Object یا Extended Procedure بنویسید.

AminSobati
دوشنبه 24 بهمن 1384, 09:56 صبح
ضمنا ستون HostName در نتیجه EXEC SP_WHO2 رو یک نگاهی بندازین، اگر چه دقیقا لاگین رو مشخص نمیکنه ولی Host شاید به دردتون بخوره

Elham_gh
دوشنبه 24 بهمن 1384, 19:11 عصر
همانطور که گفتم system_user فقط زمانی جواب مورد نظر شما را می دهد که Windows Authentication استفاده شده باشد. اما اگر می خواهید بدانید که در هر حالت کاربر ویندوزی شما کیست, خود ویندوز یک Script دارد که من دقیقا آنرا یادم نیست ! اما تو SQL Serevr از xp_cmdshell استفاده کرده و آن Script را اجرا کنید. باز این راه قطعی نیست. چون معمولا یک DB admin خوب این Extended Sp را از Master پاک می کند! 

با این حال اگر نام آن Script ویندوز یادم اومد برانتون اینجا می ذارم. اما الان حداقل یک سر نخ دارید!
( برید دنبال اون Script  )