IS_MEMBER(Transact-SQL)IS_MEMBER (Transact-SQL)

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

현재 사용자가 지정된 MicrosoftMicrosoft Windows 그룹 또는 SQL ServerSQL Server 데이터베이스 역할의 멤버인지 여부를 표시합니다.Indicates whether the current user is a member of the specified MicrosoftMicrosoft Windows group or SQL ServerSQL Server database role.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax


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

인수Arguments

' 그룹 '' group '
적용 대상: SQL Server 2008SQL Server 2008 통해 SQL Server 2017SQL Server 2017Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017

검사할 Windows 그룹의 이름 형식에 있어야 도메인\그룹합니다.Is the name of the Windows group that is being checked; must be in the format Domain\Group. 그룹sysname합니다.group is sysname.

' 역할 '' role '
이름인는 SQL ServerSQL Server 역할 확인 하는 중입니다.Is the name of the SQL ServerSQL Server role that is being checked. 역할sysname 데이터베이스 역할 또는 사용자 정의 역할 있으 나 서버 역할 하지 고정 포함 될 수 있습니다.role is sysname and can include the database fixed roles or user-defined roles, but not server roles.

반환 형식Return Types

intint

주의Remarks

IS_MEMBER는 다음과 같은 값을 반환합니다.IS_MEMBER returns the following values.

반환 값Return value DescriptionDescription
00 현재 사용자의 구성원이 아닙니다. 그룹 또는 역할합니다.Current user is not a member of group or role.
1.1 현재 사용자가 멤버인 그룹 또는 역할합니다.Current user is a member of group or role.
NULLNULL 어느 그룹 또는 역할 올바르지 않습니다.Either group or role is not valid. SQL ServerSQL Server 로그인 또는 응용 프로그램 역할을 사용하는 로그인에서 쿼리하는 경우 Windows 그룹에 대해 NULL을 반환합니다.When queried by a SQL ServerSQL Server login or a login using an application role, returns NULL for a Windows group.

IS_MEMBER는 Windows에서 만든 액세스 토큰을 검사하여 Windows 그룹 멤버를 결정합니다.IS_MEMBER determines Windows group membership by examining an access token that is created by Windows. 액세스 토큰은 사용자가 SQL ServerSQL Server 인스턴스에 연결한 후에 변경된 그룹 멤버 변경 내용을 반영하지 않습니다.The access token does not reflect changes in group membership that are made after a user connects to an instance of SQL ServerSQL Server. Windows 그룹 멤버는 SQL ServerSQL Server 로그인 또는 SQL ServerSQL Server 응용 프로그램 역할에서 쿼리할 수 없습니다.Windows group membership cannot be queried by a SQL ServerSQL Server login or a SQL ServerSQL Server application role.

추가 하 고 데이터베이스 역할에서 구성원 제거을 사용 하 여 ALTER role( Transact SQL ) .To add and remove members from a database role, use ALTER ROLE (Transact-SQL). 추가 하 고 서버 역할에서 구성원 제거을 사용 하 여 ALTER SERVER role( Transact SQL ) .To add and remove members from a server role, use ALTER SERVER ROLE (Transact-SQL).

이 함수는 기본 사용 권한이 아니라 역할 멤버 자격을 평가합니다.This function evaluates role membership, not the underlying permission. 예를 들어는 db_owner 고정된 데이터베이스 역할에는 제어 데이터베이스 권한.For example, the db_owner fixed database role has the CONTROL DATABASE permission. 사용자에 게 있으면는 제어 데이터베이스 권한에 포함 있지만 역할의 멤버는 아닌 경우이 함수는 잘못 보고 하 여 사용자의 구성원이 아닙니다는 db_owner 역할을 사용자에 게 동일한 경우에 사용 권한입니다.If the user has the CONTROL DATABASE permission but is not a member of the role, this function will correctly report that the user is not a member of the db_owner role, even though the user has the same permissions.

멤버는 sysadmin 으로 모든 데이터베이스를 입력 하는 고정된 서버 역할의 dbo 사용자입니다.Members of the sysadmin fixed server role enter every database as the dbo user. 멤버에 대 한 사용 권한을 확인 하는 sysadmin 고정된 서버 역할에 대 한 권한을 확인 dbo, 원래 로그인 하지 않습니다.Checking permission for member of the sysadmin fixed server role, checks permissions for dbo, not the original login. 이후 dbo 데이터베이스 역할에 추가할 수 없습니다 및 Windows 그룹에 존재 하지 않는 dbo 0 또는 NULL 역할 존재 하지 않는 경우 항상 반환 됩니다.Since dbo can't be added to a database role and doesn’t exist in Windows groups, dbo will always return 0 (or NULL if the role doesn't exist).

여부를 확인 하려면 다른 SQL ServerSQL Server 로그인이 데이터베이스 역할의 멤버를 사용 하 여 IS_ROLEMEMBER ( Transact SQL ) .To determine whether another SQL ServerSQL Server login is a member of a database role, use IS_ROLEMEMBER (Transact-SQL). 확인 하려면 여부는 SQL ServerSQL Server 로그인이 서버 역할의 멤버를 사용 하 여 IS_SRVROLEMEMBER ( Transact SQL ) .To determine whether a SQL ServerSQL Server login is a member of a server role, use IS_SRVROLEMEMBER (Transact-SQL).

Examples

다음 예에서는 현재 사용자가 데이터베이스 역할 또는 Windows 도메인 그룹의 멤버인지 확인합니다.The following example checks whether the current user is a member of a database role or a Windows domain group.

-- 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  

관련 항목:See Also

Is_srvrolemember( Transact SQL ) IS_SRVROLEMEMBER (Transact-SQL)
보안 주체(데이터베이스 엔진) Principals (Database Engine)
보안 카탈로그 뷰(Transact-SQL) Security Catalog Views (Transact-SQL)
보안 함수(Transact-SQL)Security Functions (Transact-SQL)