다음을 통해 공유


sys.dm_db_uncontained_entities(Transact-SQL)

데이터베이스에 사용된 포함되지 않은 개체를 표시합니다. 포함되지 않은 개체는 포함된 데이터베이스의 데이터베이스 경계를 넘는 개체입니다. 이 뷰는 포함된 데이터베이스와 포함되지 않은 데이터베이스 모두에서 액세스할 수 있습니다. sys.dm_db_uncontained_entities가 비어 있는 경우에는 데이터베이스에서 포함되지 않은 엔터티를 사용하지 않습니다.

모듈이 데이터베이스 경계를 두 번 이상 교차한 경우 처음에 발견된 교차만 보고됩니다.

열 이름

유형

설명

class

int

1 = 개체 또는 열(모듈, XP, 뷰, 동의어 및 테이블 포함)

4 = 데이터베이스 보안 주체

5 = 어셈블리

6 = 형식

7 = 인덱스(전체 텍스트 인덱스)

12 = 데이터베이스 DDL 트리거

19 = 경로

30 = 감사 사양

class_desc

nvarchar(120)

엔터티의 클래스에 대한 설명입니다. 다음 중 하나에 해당합니다.

  • OBJECT_OR_COLUMN

  • DATABASE_PRINCIPAL

  • ASSEMBLY

  • TYPE

  • INDEX

  • DATABASE_DDL_TRIGGER

  • ROUTE

  • AUDIT_SPECIFICATION

major_id

int

엔터티의 ID입니다.

class = 1이면 object_id

class = 4이면 sys.database_principals.principal_id

class = 5이면 sys.assemblies.assembly_id

class = 6이면 sys.types.user_type_id

class = 7이면 sys.indexes.index_id

class = 12이면 sys.triggers.object_id

statement_line_number

int

클래스가 모듈인 경우 포함되지 않은 용도가 있는 줄 번호를 반환합니다. 그렇지 않으면 값이 Null입니다.

statement_ offset_begin

int

클래스가 모듈인 경우 포함되지 않은 용도의 시작 위치(0으로 시작되는 바이트)를 나타냅니다. 그렇지 않으면 반환 값이 Null입니다.

statement_ offset_end

int

클래스가 모듈인 경우 포함되지 않은 용도의 끝 위치(0으로 시작되는 바이트)를 나타냅니다. 값이 -1인 경우 모듈의 끝을 나타냅니다. 그렇지 않으면 반환 값이 Null입니다.

statement_type

nvarchar(512)

문의 유형입니다.

feature_ name

nvarchar(256)

개체의 외부 이름을 반환합니다.

feature_type_name

nvarchar(256)

기능의 유형을 반환합니다.

주의

sys.dm_db_uncontained_entities는 잠재적으로 데이터베이스 경계를 넘을 수 있는 엔터티를 표시합니다. 즉, 데이터베이스 외부 개체를 사용할 가능성이 있는 사용자 엔터티를 반환합니다.

다음 기능 유형이 보고됩니다.

  • 알 수 없는 포함 경계(동적 SQL 또는 지연된 이름 확인)

  • DBCC 명령

  • 시스템 저장 프로시저

  • 시스템 스칼라 함수

  • 시스템 테이블 반환 함수

  • 시스템 기본 제공 함수

보안

사용 권한

sys.dm_db_uncontained_entities는 특정 유형의 권한을 가진 사용자에 대해서만 개체를 반환합니다. 데이터베이스의 포함을 완전하게 평가하려면 sysadmin 고정 서버 역할 또는 db_owner 역할의 멤버와 같은 권한이 높은 사용자가 이 함수를 사용해야 합니다.

다음 예에서는 P1이라는 프로시저를 만든 다음 sys.dm_db_uncontained_entities 쿼리를 만듭니다. 이 쿼리는 P1에서 데이터베이스 외부에 있는 sys.endpoints를 사용하는 것을 보고합니다.

CREATE DATABASE Test;
GO

USE Test;
GO
CREATE PROC P1
AS 
SELECT * FROM sys.endpoints ;
GO
SELECT SO.name, UE.* FROM sys.dm_db_uncontained_entities AS UE
LEFT JOIN sys.objects AS SO
    ON UE.major_id = SO.object_id;

참고 항목

개념

포함된 데이터베이스