sys.dm_db_uncontained_entities(Transact-SQL)
적용 대상: SQL Server
데이터베이스에 사용되는 연결되지 않은 개체를 표시합니다. 포함되지 않은 개체는 포함된 데이터베이스의 데이터베이스 경계를 넘어가는 개체입니다. 이 뷰는 포함된 데이터베이스와 포함되지 않은 데이터베이스 모두에서 액세스할 수 있습니다. sys.dm_db_uncontained_entities 비어 있으면 데이터베이스는 연결되지 않은 엔터티를 사용하지 않습니다.
모듈이 데이터베이스 경계를 두 번 이상 교차하는 경우 검색된 첫 번째 교차만 보고됩니다.
열 이름 | Type | 설명 |
---|---|---|
class | int | 1 = 개체 또는 열(모듈, XP, 뷰, 동의어 및 테이블 포함) 4 = 데이터베이스 보안 주체 5 = 어셈블리 6 = 형식 7 = 인덱스(전체 텍스트 인덱스) 12 = 데이터베이스 DDL 트리거 19 = 경로 30 = 감사 사양 |
class_desc | nvarchar(120) | 엔터티 클래스에 대한 설명입니다. 클래스와 일치하는 다음 중 하나입니다. OBJECT_OR_COLUMN DATABASE_PRINCIPAL 집회 TYPE 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;