2017-06-06 54 views
0

我们有一个新的实习生,他能够登录我们的开发环境。但是,我无法弄清楚如何。我们有AD安全组作为我们在SQL Server中的登录。经过与我们的服务器人员进行了大量研究后,我们发现实习生组是我们开发服务器上的本地管理组的一部分。本地管理员组有一个登录到SQL Server,这是他如何能够进入。这带来了以下问题。某人通过什么登录身份验证?

在SQL Server中有一种方法可以告诉某人在什么登录下进行身份验证?

场景:

Domain = ACME 

User = Bob 

Bob is in the AD group ACME\IT-Dept 

SQL Server has a login for ACME\IT-Dept 

我怎么能告诉鲍勃通过登录为ACME \ IT-部门允许不知道鲍勃是该组中?

回答

1

宥可以找到它在以下几个方面:

  1. 冒充该登录和查询sys.login_token这样的:

    execute as login = 'that_login'; 
    
    select distinct name, type 
    from sys.login_token 
    where principal_id > 0 
         and type in ('WINDOWS LOGIN', 'WINDOWS GROUP'); 
    
    revert;  
    
  2. 望着权限路径:

    exec xp_logininfo 'that_login', 'all'; 
    

我更喜欢第一个更可靠的

+0

这很可爱。非常感谢。 – SteveB

+0

需要说明的是,用户有资格可能会有*多个*组。他们的个人权限是他们所在组的所有组权限的联合。 –