Просмотр определений объектов
При просмотре исходного кода Transact-SQL объектов базы данных применяются более строгие правила, чем при просмотре метаданных. Для просмотра текста определения Transact-SQL какого-либо объекта пользователь либо должен быть его владельцем, либо ему должно быть предоставлено на этот объект одно из следующих разрешений:
- CONTROL
- ALTER
- TAKE OWNERSHIP
- VIEW DEFINITION
Ниже приведены примеры работы этих правил:
Например, если пользователю предоставлено разрешение ALTER на таблицу myTable, он может просматривать определение Transact-SQL в столбце definition во всех представлениях каталогов, перечисленных в приведенной ниже таблице. Если пользователь не имеет ни одного из указанных выше разрешений или не является владельцем объекта, определение Transact-SQL в столбце definition представления каталога имеет значение NULL.
Если пользователь не является владельцем таблицы myTable и ему предоставлено только разрешение SELECT на эту таблицу, при доступе пользователя к следующим представлениям каталогов столбцы definition имеют значение NULL.
Имя представления каталога Определения Transact-SQL для sys.sql_modules
Все триггеры в таблице mytable
sys.computed_columns
Все вычисляемые столбцы в таблице myTable
sys.check_constraints
Все ограничения CHECK в таблице myTable
sys.default_constraints
Все ограничения DEFAULT в таблице myTable
Предположим, что пользователю предоставлено разрешение EXECUTE на выполнение процедуры myProcedure. Если пользователь пытается просмотреть определение Transact-SQL процедуры, обращаясь к представлению каталога sys.sql_modules, столбец definition содержит значение NULL. С другой стороны, пользователь, которому предоставлено разрешение TAKE OWNERSHIP на выполнение процедуры myProcedure, может просмотреть определение Transact-SQL процедуры в столбце definition представления sys.sql_modules.
См. также
Основные понятия
Настройка видимости метаданных
Разрешение VIEW DEFINITION
Разрешение VIEW ANY DATABASE
Другие ресурсы
sys.sql_modules (Transact-SQL)
sys.computed_columns (Transact-SQL)
sys.check_constraints (Transact-SQL)
sys.default_constraints (Transact-SQL)