繁体   English   中英

何时在SQL Server中设置IS_MEMBER?

[英]When is IS_MEMBER set in Sql Server?

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

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

我为其分配了登录名“ Domain \\ Kieran”。

选择SUSER_NAME(); 给出“域\\基兰”

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

IS_MEMBER中的NULL答案表示SQL Server无法识别Windows组。

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

从BOL链接:

IS_MEMBER通过检查Windows创建的访问令牌来确定Windows组成员身份。 访问令牌不反映用户连接到SQL Server实例后进行的组成员身份更改。

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

一切都应在您的UDF中正常运行(除非您在UDF中具有以用户身份执行或以所有者身份执行)

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

啊。 我想我看到了问题。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM