指明当前的用户登录是否是指定的服务器角色的成员。
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )
'role'
被检查的服务器角色的名称。role 的数据类型为 sysname。
role 有效的值是:
'login'
将要检查的登录的可选名称。login 的数据类型为 sysname,默认值为 NULL。如果未指定,那么使用当前用户的登录帐户。
int
IS_SRVROLEMEMBER 返回下面三个值。
返回值 | 描述 |
---|---|
0 | login 不是 role 的成员。 |
1 | login 是 role 的成员。 |
NULL | role 或 login 是无效的。 |
如果要通过程序检测当前用户是否可以执行某个活动(该活动要求服务器角色的权限),那么这个函数很有用。
如果为 login 指定一个 Windows NT 用户(例如 London\JoeB),而先前没有使用 sp_grantlogin 或 sp_denylogin 授予或拒绝该用户直接访问 Microsoft SQL Server 的权限,那么 IS_SRVROLEMEMBER 就会返回 NULL。
下面的示例指明当前用户是否为 sysadmin 固定服务器角色的成员。
IF IS_SRVROLEMEMBER ('sysadmin') = 1
print 'Current user''s login is a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') = 0
print 'Current user''s login is NOT a member of the sysadmin role'
ELSE IF IS_SRVROLEMEMBER ('sysadmin') IS NULL
print 'ERROR: Invalid server role specified'
相关文章