Поделиться через


sys.dm_db_uncontained_entities (Transact-SQL)

Область применения: SQL Server

Показывает все неавтономные объекты, которые используются в базе данных. Неавтономные объекты пересекают границу базы данных в автономной базе данных. Представление доступно как из автономной базы данных, так и из неавтономной базы данных. Если sys.dm_db_uncontained_entities пуст, база данных не использует несоотражаемые сущности.

Если модуль пересекает границу базы данных несколько раз, то в отчете указывается только первое пересечение границы.

Имя столбца Тип Description
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 Идентификатор сущности.

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

См. также

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