2013-05-05 80 views
0

在SQL Server中,我擁有具有'sysadmin'角色的AD用戶。對同一檢查的多個查詢會給出不同的結果 - SQL

當我執行查詢

SELECT IS_SRVROLEMEMBER ('SYSADMIN', 'Domain\agarwals') 

輸出0。但是當我刪除用戶名並執行查詢時

SELECT IS_SRVROLEMEMBER ('SYSADMIN') 

輸出爲1

enter image description here

有沒有人遇到這樣?有人可以幫助我理解爲什麼來自不同查詢的同一檢查會給出不同的輸出。

+0

你連接的是什麼? SELECT SUSER_NAME()給你什麼? – 2013-05-05 07:28:07

+0

執行SELECT SUSER_NAME()給我我的域ID。域\ agarwals – 2013-05-05 10:04:54

回答

0

最後我得到了答案。

當我執行查詢

SELECT IS_SRVROLEMEMBER( 'SYSADMIN', '域\ agarwals')

我的地方(我沒有連接到域)輸出爲0,但是當我連接到VPN連接到域,輸出爲1。

而輸出

SE LECT IS_SRVROLEMEMBER('SYSADMIN')

總是1,不管我的機器是否連接到域或不是。

奇怪而真實。

1

這是因爲'Domain \ agarwals'不是sysadmin角色的一部分。

如果未爲登錄指定值,則結果將基於當前的執行上下文。因此,看來你是系統管理員角色的成員,因此輸出爲1

+0

我使用我的域ID登錄。我已經更新了圖像 – 2013-05-05 10:06:36

0

在MSDN上它提http://msdn.microsoft.com/en-IN/library/ms176015.aspx

0 login is not a member of role. 
1 login is a member of role. 
NULL role or login is not valid, or you do not have permission to view the role membership. 

你可以看到0手段agarwals不是sysadmin角色的成員。

+0

請在這裏找到更新的圖像,它顯示agarwals是'sysadmin' – 2013-05-05 10:07:13

相關問題