Condividi tramite


IS_SRVROLEMEMBER (Transact-SQL)

Indica se un account di accesso di SQL Server 2005 è un membro del ruolo predefinito del server specificato.

Icona di collegamento a un argomentoConvenzioni 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)

Guida in linea e informazioni

Assistenza su SQL Server 2005