IS_SRVROLEMEMBER (Transact-SQL)
指示 SQL Server 2005 登录名是否为指定固定服务器角色的成员。
语法
IS_SRVROLEMEMBER ('role' [ , 'login' ] )
参数
'role'
要检查的服务器角色的名称。role 的数据类型为 sysname。role 的有效值包括:
sysadmin
- dbcreator
- bulkadmin
- diskadmin
- processadmin
- serveradmin
- setupadmin
- securityadmin
- 'login'
要检查的 SQL Server 2005 登录名。login 的数据类型为 sysname,默认值为 NULL。如果没有指定值,则使用当前用户的 SQL Server 登录名。
返回类型
int
备注
IS_SRVROLEMEMBER 返回以下值。
返回值 | 说明 |
---|---|
0 |
login 不是 role 的成员。 |
1 |
login 不是 role 的成员。 |
NULL |
role 或 login 无效。 |
使用此函数可确定当前用户是否可以执行需要服务器角色权限的操作。
如果为 login 指定了 Microsoft Windows 登录名(例如 London\JoeB),那么,除非对登录名授予或拒绝了对 SQL Server 2005 的直接访问权限,否则 SRVROLEMEMBER 将返回 NULL。
如果登录名是 Windows 域登录名,它可以通过 Windows 组中的成员身份作为固定服务器角色的成员。为了解析这种间接成员身份,IS_SRVROLEMEMBER 从域控制器请求 Windows 组成员身份信息。如果域控制器不可访问或没有响应,则 IS_SRVROLEMEMBER 返回成员身份信息时,只考虑用户及其本地组。
示例
以下示例指示当前用户的 SQL Server 登录名是 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: The server role specified is not valid.'
请参阅
参考
IS_MEMBER (Transact-SQL)
安全函数 (Transact-SQL)