sys.dm_db_uncontained_entities(Transact-SQL)

적용 대상:SQL Server

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

모듈이 데이터베이스 경계를 두 번 이상 교차하는 경우 검색된 첫 번째 교차만 보고됩니다.

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

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

5 = 어셈블리

6 = 형식

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

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

19 = 경로

30 = 감사 사양
class_desc nvarchar(120) 엔터티 클래스에 대한 설명입니다. 클래스와 일치하는 다음 중 하나입니다.

OBJECT_OR_COLUMN

DATABASE_PRINCIPAL

어셈블리

형식

INDEX

DATABASE_DDL_TRIGGER

경로

AUDIT_SPECIFICATION
major_id int 엔터티의 ID입니다.

클래스 = 1이면 object_id

클래스 = 4이면 sys.database_principals.principal_id입니다.

클래스가 5이면 sys.assemblies.assembly_id.

클래스가 6이면 sys.types.user_type_id.

클래스가 7이면 sys.indexes.index_id.

클래스가 12이면 sys.triggers.object_id.

클래스 = 19이면 sys.routes.route_id.

클래스 = 30이면 sys입니다. database_audit_specifications.database_specification_id.
statement_line_number int 클래스가 모듈인 경우 연결되지 않은 사용이 있는 줄 번호를 반환합니다. 그렇지 않으면 값이 null입니다.
statement_ offset_begin int 클래스가 모듈인 경우 0부터 시작하여 포함되지 않은 사용이 시작되는 시작 위치를 바이트 단위로 나타냅니다. 그렇지 않으면 반환 값이 Null입니다.
statement_ offset_end int 클래스가 모듈인 경우 0부터 시작하여 포함되지 않은 사용의 끝 위치를 바이트 단위로 나타냅니다. 값 -1은 모듈의 끝을 나타냅니다. 그렇지 않으면 반환 값이 Null입니다.
statement_type nvarchar(512) 문의 형식입니다.
feature_ 이름 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;  

참고 항목

포함된 데이터베이스