Sql-Server-2012

在工作組內連接時,sys.login_token 的查詢不包括特定的 windows 組

  • December 28, 2018

我有兩個對應於兩個 Windows 組的 SQL Server 登錄名:

MachineName\MyAppAmdin
MachineName\MyAppUser

我用

select principal_id, name, [type], usage
from sys.login_token
where principal_id > 0

檢查目前使用者是否是這些 Windows 組中的任何一個的成員。

當機器在域下時,它將列出

+--------------+---------------------------------+---------------+---------------+
| principal_id |              name               |     type      |     usage     |
+--------------+---------------------------------+---------------+---------------+
|            2 | public                          | SERVER ROLE   | GRANT OR DENY |
|            3 | sysadmin                        | SERVER ROLE   | GRANT OR DENY |
|          260 | MachineName\SQL Server Services | WINDOWS GROUP | GRANT OR DENY |
|          309 | MachineName\MyAppUser           | WINDOWS GROUP | GRANT OR DENY |
|          325 | MachineName\MyAppAmdin          | WINDOWS GROUP | GRANT OR DENY |
+--------------+---------------------------------+---------------+---------------+

正如預期的那樣。

但是,當我嘗試另一台工作組下的機器時,它只列出

+--------------+---------------------------------+---------------+---------------+
| principal_id |              name               |     type      |     usage     |
+--------------+---------------------------------+---------------+---------------+
|            2 | public                          | SERVER ROLE   | GRANT OR DENY |
|            3 | sysadmin                        | SERVER ROLE   | GRANT OR DENY |
|          260 | MachineName\SQL Server Services | WINDOWS GROUP | GRANT OR DENY |
+--------------+---------------------------------+---------------+---------------+

甚至該帳戶實際上也是MyAppUseror的成員MyAppAdmin

好吧,也許還有其他我沒有註意到的因素,但到目前為止,工作組與域是我所知道的唯一區別。

它應該以這種方式工作還是我出錯了?

在我刪除 SQL Server 中的登錄名和關聯使用者然後將它們重新添加回來後,問題就解決了。不知道出了什麼問題,但可能會遇到同樣問題的人的記錄。

引用自:https://dba.stackexchange.com/questions/225836