IS_SRVROLEMEMBER(Transact-SQL)

 

이 항목은 다음에 적용됩니다.예SQL Server(2008부터 시작)예Azure SQL 데이터베이스아니요Azure SQL 데이터 웨어하우스아니요병렬 데이터 웨어하우스

SQL Server 로그인이 지정된 서버 역할의 멤버인지 여부를 나타냅니다.

Topic link icon Transact-SQL 구문 표기 규칙

  
IS_SRVROLEMEMBER ( 'role' [ , 'login' ] )  

' role '
확인할 서버 역할의 이름입니다. 역할sysname합니다.

유효한 값에 대 한 역할 는 사용자 정의 서버 역할 및 다음 고정 서버 역할:

sysadminserveradmin
dbcreatorsetupadmin
bulkadminsecurityadmin
diskadmin적용 대상: SQL Server 2012 부터 SQL Server 2016까지

public
processadmin

' login '
이름인는 SQL Server 로그인을 확인 합니다. 로그인sysname, 기본값은 NULL입니다. 값을 지정하지 않으면 현재의 실행 컨텍스트에 따른 결과를 얻게 됩니다. 매개 변수에 NULL이라는 단어가 포함되어 있으면 NULL이 반환됩니다.

int

반환 값Description
0로그인 의 구성원이 아닙니다 역할합니다.

 Azure SQL 데이터베이스, 이 문은 항상 0을 반환 합니다.
1로그인 의 멤버인 역할합니다.
NULL역할 또는 로그인 유효 하지 않거나 또는 역할 멤버 자격을 볼 수 있는 권한이 없습니다.

현재 사용자가 서버 역할의 사용 권한이 필요한 동작을 수행할 수 있는지 여부를 확인 하려면 UseIS_SRVROLEMEMBER 합니다.

Contoso\Mary5와 같은 Windows 로그인에 대 한 지정 된 경우 로그인, IS_SRVROLEMEMBER 반환 NULL, 로그인에 부여 되었거나 거부에 대 한 직접 액세스 하지 않는 한, SQL Server합니다.

경우 선택적 로그인 매개 변수가 제공 되지 않고 경우 로그인 Windows 도메인 로그인, Windows 그룹의 멤버 자격을 통해 고정된 서버 역할의 멤버 수 있습니다. 이러한 간접 멤버 자격을 확인하기 위해 IS_SRVROLEMEMBER는 도메인 컨트롤러에 Windows 그룹 멤버 자격 정보를 요청합니다. 도메인 컨트롤러에 액세스할 수 없는 또는 응답 하지 않을 경우 IS_SRVROLEMEMBER 와 로컬 그룹만 고려 하 여 역할 멤버 자격 정보를 반환 합니다. 지정된 사용자가 현재 사용자가 아닌 경우 IS_SRVROLEMEMBER가 반환하는 값이 인증자(예: Active Directory)의 마지막 SQL Server 데이터 업데이트와 다를 수 있습니다.

선택적 로그인 매개 변수를 제공하지 않으면 쿼리 중인 Windows 로그인이 sys.server_principals에 있어야 하거나 IS_SRVROLEMEMBER가 NULL을 반환합니다. 이것은 올바른 로그인이 아님을 나타냅니다.

로그인 매개 변수가 도메인 로그인이거나 Windows 그룹을 기반으로 하고 도메인 컨트롤러에 액세스할 수 없는 경우 IS_SRVROLEMEMBER 호출이 실패하고 올바르지 않거나 불완전한 데이터가 반환될 수 있습니다.

도메인 컨트롤러를 사용할 수 없으면 IS_SRVROLEMEMBER 호출은 로컬 Windows 계정 또는 SQL Server 로그인과 같이 Windows 사용자를 로컬로 인증할 수 있는 경우 정확한 정보를 반환합니다.

IS_SRVROLEMEMBER 는 Windows 그룹이 로그인 인수로 사용 되 고이 Windows 그룹 형식인 차례로 지정된 된 서버 역할의 멤버인 또 다른 Windows 그룹의 멤버인 경우 항상 0을 반환 합니다.

또한 사용자 계정 컨트롤 (UAC) 설정을 반환 하는 다른 결과 않을 수 있습니다. 이는 사용자가 Windows 그룹 멤버 또는 특정 SQL Server 사용자 중 어떤 자격으로 서버에 액세스했는지에 따라 다릅니다.

이 함수는 기본 사용 권한이 아니라 역할 멤버 자격을 평가합니다. 예를 들어는 sysadmin 고정된 서버 역할에는 제어 서버 권한. 사용자가는 제어 서버 권한에 포함 있지만 역할의 멤버는 아닌 경우이 함수는 잘못 보고 하 여 사용자의 구성원 인지는 sysadmin 역할, 사용자가 동일한 사용 권한을 갖고 있더라도 합니다.

현재 사용자 지정된 된 Windows 그룹의 구성원 인지 확인 하기 위해 또는 SQL Server 데이터베이스 역할을 사용 하 여 IS_MEMBER (& a)( TRANSACT-SQL )합니다. 확인 하려면 여부는 SQL Server 로그인이 데이터베이스 역할의 멤버를 사용 하 여 IS_ROLEMEMBER (& a)( TRANSACT-SQL )합니다.

서버 역할에 대한 VIEW DEFINITION 권한이 필요합니다.

다음 예에서는 현재 사용자의 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.';  

다음 예제에서는 도메인 로그인 Pat의 멤버 인지를 나타냅니다.는 diskadmin 고정된 서버 역할입니다.

SELECT IS_SRVROLEMEMBER('diskadmin', 'Contoso\Pat');  

IS_MEMBER (입니다. TRANSACT-SQL )
보안 함수(Transact-SQL)

커뮤니티 추가 항목

추가
표시: