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 的直接存取權,否則,IS_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)