Transact-SQL 参考

IS_SRVROLEMEMBER

指明当前的用户登录是否是指定的服务器角色的成员。

语法

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'

请参见

IS_MEMBER

安全函数