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

Идентификатор сущности.

Если 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;

См. также

Основные понятия

Автономные базы данных