sys.dm_db_uncontained_entities (Transact-SQL)

Применимо к: даSQL Server (все поддерживаемые версии)

Показывает все неавтономные объекты, которые используются в базе данных. Неавтономные объекты пересекают границу базы данных в автономной базе данных. Представление доступно как из автономной базы данных, так и из неавтономной базы данных. Если представление 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

СБОРОК

TYPE

INDEX

DATABASE_DDL_TRIGGER

ROUTE

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

Если класс = 1, то object_id

Если класс = 4, то sys. database_principals. principal_id.

Если класс = 5, то sys.assemblies.assembly_id.

Если класс = 6, то sys.types.user_type_id.

Если Class = 7, то sys.indexes.index_id.

Если Class = 12, то sys.triggers.object_id.

Если класс = 19, то sys.routes.route_id.

Если Class = 30, то sys. database_audit_specifications.database_specification_id database_audit_specifications.
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;  

См. также:

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