指明當(dāng)前的用戶登錄是否是指定的服務(wù)器角色的成員。
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )
'role'
被檢查的服務(wù)器角色的名稱。role 的數(shù)據(jù)類型為 sysname。
role 有效的值是:
'login'
將要檢查的登錄的可選名稱。login 的數(shù)據(jù)類型為 sysname,默認(rèn)值為 NULL。如果未指定,那么使用當(dāng)前用戶的登錄帳戶。
int
IS_SRVROLEMEMBER 返回下面三個值。
返回值 | 描述 |
---|---|
0 | login 不是 role 的成員。 |
1 | login 是 role 的成員。 |
NULL | role 或 login 是無效的。 |
如果要通過程序檢測當(dāng)前用戶是否可以執(zhí)行某個活動(該活動要求服務(wù)器角色的權(quán)限),那么這個函數(shù)很有用。
如果為 login 指定一個 Windows NT 用戶(例如 London\JoeB),而先前沒有使用 sp_grantlogin 或 sp_denylogin 授予或拒絕該用戶直接訪問 Microsoft SQL Server 的權(quán)限,那么 IS_SRVROLEMEMBER 就會返回 NULL。
下面的示例指明當(dāng)前用戶是否為 sysadmin 固定服務(wù)器角色的成員。
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'
相關(guān)文章