假设我是 Windows 域 DC(数据中心)的用户。
我的用户名是 DC\Somebody
我在组 DC\Developers
现在 SQL-Server 有一个名为 DC\Developers 的登录组,通过它,我可以登录到具有集成安全性的服务器上。
我现在正在尝试获取 SQL-Server 登录名(我的意思是 DC\Developers),但我不知道如何。我能得到的只是用户名(DC\Somebody)。
但我想获得 DC\Developers。
我怎样才能做到这一点 ?
这是我到目前为止尝试的功能,但没有成功:
SELECT -- http://blog.sqlconcepts.co.nz/2011/07/who-am-i.html
ORIGINAL_LOGIN() AS OriginalLogin
,SUSER_SNAME() AS CurrentContext
,SESSION_USER AS SessionUser
,SYSTEM_USER AS SystemUser
,CURRENT_USER AS CurrentUser
,user AS "WhichUserIsThat?"
,ORIGINAL_LOGIN() AS OriginalLogin
,USER_NAME() AS UserName
此外,如果将多个组添加为 sql-server 登录名,并且我是所有组的成员,然后我以集成安全性登录,会发生什么情况。它将需要哪个登录?它似乎是按字母顺序排列的第一个...
DC\Somebody
在您的登录名所属的实例上获取具有现有登录名的 AD 组xp_logininfo
sys.login_token
使用模拟验证其他登录的示例
结果
多个 AD 组的权限
您将被授予 每个
GRANT
. 优先于权限。DENY
AD Group
DENY
GRANT
可以在这里找到@Max Vernon在之前的回答中更详尽的文章 。