我正在尝试让IS_MEMBER在Sql Server 2005中的UDF中工作。
我有一个Windows组“Domain \ TestGroup”。
我将登录“Domain \ Kieran”分配给它。
选择SUSER_NAME(); 给出“Domain \ Kieran”
但 选择IS_MEMBER('Domain \ TestGroup'); 返回NULL。
答案 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,不会看到任何角色或组信息。