IS_SRVROLEMEMBER (Transact-SQL)
Indica se un account di accesso di SQL Server 2005 è un membro del ruolo predefinito del server specificato.
Convenzioni della sintassi Transact-SQL
Sintassi
IS_SRVROLEMEMBER ('role' [ , 'login' ] )
Argomenti
'role'
Nome del ruolo del server sottoposto al controllo. role è di tipo sysname.I valori validi per role includono i seguenti:
sysadmin
- dbcreator
- bulkadmin
- diskadmin
- processadmin
- serveradmin
- setupadmin
- securityadmin
- 'login'
Nome dell'account di accesso di SQL Server 2005 da controllare. login è di tipo sysname e il valore predefinito è NULL. Se non si specifica alcun valore, viene utilizzato l'account di accesso di SQL Server dell'utente corrente.
Tipi restituiti
int
Osservazioni
IS_SRVROLEMEMBER restituisce i valori seguenti:
Valore restituito | Descrizione |
---|---|
0 |
login non è un membro di role. |
1 |
login è un membro di role. |
NULL |
role o login non è valido. |
Utilizzare questa funzione per determinare se l'utente corrente è in grado di eseguire un'azione che richiede le autorizzazioni di un ruolo del server.
Se è stato specificato un account di accesso di Microsoft Windows, ad esempio London\JoeB per login, IS_SRVROLEMEMBER restituisce NULL, a meno che all'account non sia stato concesso o negato l'accesso diretto a SQL Server 2005.
Se l'account di accesso è un account di domino di Windows, potrebbe essere un membro di un ruolo predefinito del server tramite l'appartenenza a un gruppo di Windows. Per risolvere tali problemi di appartenenza indiretta, IS_SRVROLEMEMBER richiede le informazioni di appartenenza ai gruppi di Windows al controller di dominio. Se il controller di dominio non è accessibile o non risponde, IS_SRVROLEMEMBER restituisce le informazioni di appartenenza ai ruoli prendendo in considerazione solo l'utente e i gruppi locali.
Esempi
Nell'esempio seguente viene indicato se l'account di accesso di SQL Server per l'utente corrente è un membro del ruolo predefinito del 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.'
Vedere anche
Riferimento
IS_MEMBER (Transact-SQL)
Funzioni di protezione (Transact-SQL)