什么时候在Sql Server中设置IS_MEMBER?

时间:2009-05-26 02:42:52

标签: sql-server sql-server-2005 security

我正在尝试让IS_MEMBER在Sql Server 2005中的UDF中工作。

我有一个Windows组“Domain \ TestGroup”。

我将登录“Domain \ Kieran”分配给它。

选择SUSER_NAME(); 给出“Domain \ Kieran”

但 选择IS_MEMBER('Domain \ TestGroup'); 返回NULL。

3 个答案:

答案 0 :(得分:1)

来自IS_MEMBER的NULL回答意味着SQL Server无法识别Windows组。

它会查看您的连接中的登录令牌。它不查询Active Directory。

来自BOL链接:

  

IS_MEMBER确定Windows组   检查访问权限   由Windows创建的令牌。该   访问令牌不反映更改   在组成员身份   用户连接到实例后   SQL Server。

因此,即使doamin \ kieran在群组中,您可能需要注销并重新登录,以便使用群组成员身份更新您的登录令牌。

它应该在你的UDF中都有效(除非你在UDF中有EXECUTE AS USER或OWNER)

答案 1 :(得分:0)

检查您的ERRORLOG,看看是否有任何错误表明SQL Server服务无法连接到“域”Active Directory。

答案 2 :(得分:0)

阿。我想我看到了问题。

我的登录位于builtin \ Administrators,它是服务器固定角色sysadmin的成员。

因此我是系统管理员的成员,这意味着我是dbo,不会看到任何角色或组信息。