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


sys.dm_db_uncontained_entities (Transact-SQL)

 

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

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

Применимо к: SQL Server (начиная с SQL Server 2012 до текущей версии).

Имя столбца

Тип

Описание

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.

Если class равно 19, то sys.routes.route_id.

Если class равно 30, то sys.database_audit_specifications.databse_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_ 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;

См. также

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