IS_MEMBER(Transact-SQL)

 

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

현재 사용자가 지정된 Microsoft Windows 그룹 또는 SQL Server 데이터베이스 역할의 멤버인지 여부를 표시합니다.

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

  
IS_MEMBER ( { 'group' | 'role' } )  

' group '

적용 대상: SQL Server 2008 부터 SQL Server 2016까지

확인 중인; Windows 그룹의 이름 형식에 있어야 도메인\그룹합니다. 그룹sysname합니다.

' role '
이름인는 SQL Server 역할 검사 하는 중입니다. 역할sysname 데이터베이스 역할 또는 사용자 정의 역할을 하지만 서버 역할이 아니라 고정 포함 될 수 있습니다.

int

IS_MEMBER는 다음과 같은 값을 반환합니다.

반환 값Description
0현재 사용자의 구성원이 아닙니다. 그룹 또는 역할합니다.
1현재 사용자의 멤버인 그룹 또는 역할합니다.
NULL그룹 또는 역할 올바르지 않습니다. SQL Server 로그인 또는 응용 프로그램 역할을 사용하는 로그인에서 쿼리하는 경우 Windows 그룹에 대해 NULL을 반환합니다.

IS_MEMBER는 Windows에서 만든 액세스 토큰을 검사하여 Windows 그룹 멤버를 결정합니다. 액세스 토큰은 사용자가 SQL Server 인스턴스에 연결한 후에 변경된 그룹 멤버 변경 내용을 반영하지 않습니다. Windows 그룹 멤버는 SQL Server 로그인 또는 SQL Server 응용 프로그램 역할에서 쿼리할 수 없습니다.

추가 하 고 데이터베이스 역할에서 구성원 제거를 사용 하 여 ALTER ROLE ( TRANSACT-SQL )합니다. 추가 하 고 서버 역할에서 구성원 제거를 사용 하 여 ALTER SERVER ROLE ( TRANSACT-SQL )합니다.

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

멤버는 sysadmin 고정된 서버 역할을 입력으로 모든 데이터베이스는 dbo 사용자입니다. 멤버에 대 한 사용 권한을 확인 하는 sysadmin 고정된 서버 역할에 대 한 권한을 확인 dbo, 원래 로그인 하지 않습니다. 이후 dbo 데이터베이스 역할에 추가할 수 없습니다 및 Windows 그룹에 없으면 dbo 0 (또는 역할 존재 하지 않는 경우 NULL)를 항상 반환 합니다.

여부를 확인 하려면 다른 SQL Server 로그인이 데이터베이스 역할의 멤버를 사용 하 여 IS_ROLEMEMBER (& a)( TRANSACT-SQL )합니다. 확인 하려면 여부는 SQL Server 로그인이 서버 역할의 멤버를 사용 하 여 IS_SRVROLEMEMBER (& a)( TRANSACT-SQL )합니다.

다음 예에서는 현재 사용자가 데이터베이스 역할 또는 Windows 도메인 그룹의 멤버인지 확인합니다.

-- Test membership in db_owner and print appropriate message.  
IF IS_MEMBER ('db_owner') = 1  
   PRINT 'Current user is a member of the db_owner role'  
ELSE IF IS_MEMBER ('db_owner') = 0  
   PRINT 'Current user is NOT a member of the db_owner role'  
ELSE IF IS_MEMBER ('db_owner') IS NULL  
   PRINT 'ERROR: Invalid group / role specified';  
GO  
  
-- Execute SELECT if user is a member of ADVWORKS\Shipping.  
IF IS_MEMBER ('ADVWORKS\Shipping') = 1  
   SELECT 'User ' + USER + ' is a member of ADVWORKS\Shipping.';   
GO  

IS_SRVROLEMEMBER (입니다. TRANSACT-SQL )
보안 주체 ( 데이터베이스 엔진 )
보안 카탈로그 뷰 및(입니다. TRANSACT-SQL )
보안 함수(Transact-SQL)

커뮤니티 추가 항목

추가
표시: