我有一個用戶可以通過他們的Windows組登錄到SQL Server的場景。用戶本身在數據庫中沒有登錄或用戶。如何在沒有用戶登錄時獲取Windows組名稱
然後我想獲取用戶登錄的Windows組的名稱。但是,suser_sname()
返回實際的用戶名。 suser_sid()
也不幫助我。
有誰知道如何做到這一點?
我有一個用戶可以通過他們的Windows組登錄到SQL Server的場景。用戶本身在數據庫中沒有登錄或用戶。如何在沒有用戶登錄時獲取Windows組名稱
然後我想獲取用戶登錄的Windows組的名稱。但是,suser_sname()
返回實際的用戶名。 suser_sid()
也不幫助我。
有誰知道如何做到這一點?
DECLARE @user SYSNAME;
SET @user = SUSER_SNAME();
EXEC xp_logininfo @user, 'all';
這將返回的行爲任何組的用戶是在(行將具有在柱非空值)。但它也會返回一行用於他們自己的用戶名(在我的情況下,該行爲爲空)。
您還可以看到所有的可能組,您可能會看到與下面的查詢:
SELECT * FROM master.sys.server_principals
WHERE type = 'G'; -- type_desc = 'WINDOWS_GROUP'
用戶也可以是沒有登記與SQL其他AD組的成員服務器。你需要出去公元。
謝謝Aaron--正是我在找的東西。 – user884248 2013-03-27 17:36:04
超級有用:) – Davos 2015-01-20 04:44:05
如果Windows用戶是兩個不同Windows組的成員,那麼您希望SQL Server選擇哪一個? – 2013-03-26 19:08:19
感謝您的評論,我應該清楚這一點。我不希望SQL Server選擇一個 - 如果有多個組,我希望得到所有這些組。要長話短說...如果用戶通過Windows組而不是用戶登錄,我想知道哪個(s)。 – user884248 2013-03-26 22:29:17