sp_helprotect (Transact-SQL)

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

Возвращает отчет со сведениями о разрешениях пользователя на объект или инструкцию в текущей базе данных.

Важно!

sp_helprotect не возвращает сведения о защищаемых объектах, которые появились в SQL Server 2005 (9.x) . Вместо этого используйте sys.database_permissions и fn_builtin_permissions .

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

Значок ссылки на раздел Синтаксические обозначения в Transact-SQL

Синтаксис

  
sp_helprotect [ [ @name = ] 'object_statement' ]   
     [ , [ @username = ] 'security_account' ]   
     [ , [ @grantorname = ] 'grantor' ]   
     [ , [ @permissionarea = ] 'type' ]  

Аргументы

[ @name = ] 'object_statement' Имя объекта в текущей базе данных или инструкция, которая имеет разрешения для отчета. object_statement имеет тип nvarchar (776) и значение по умолчанию NULL, которое возвращает все разрешения объекта и инструкции. Если значение представляет объект (таблицы, представление, хранимая процедура или расширенная хранимая процедура), в текущей базе данных этот объект должен быть допустимым. Имя объекта может включать квалификатор владельца в форму owner. объект.

Если object_statement является инструкцией, это может быть инструкция CREATE.

[ @username = ] 'security_account' Имя участника, для которого возвращаются разрешения. Аргумент security_account имеет тип sysname и значение по умолчанию NULL, которое возвращает все субъекты в текущей базе данных. security_account должен существовать в текущей базе данных.

[ @grantorname = ] 'grantor' Имя участника, которому предоставлены разрешения. Grant имеет тип sysname и значение по умолчанию NULL, которое возвращает всю информацию о разрешениях, предоставленных любым участником в базе данных.

[ @permissionarea = ] 'type' Символьная строка, указывающая, следует ли отображать разрешения объекта (символьная строка o), разрешения инструкции (символьные строки) или оба (ОС). Type имеет тип varchar (10) и значение по умолчанию OS. тип может быть любым сочетанием o и s, с запятыми или пробелами между o и s или без них.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Имя столбца Тип данных Описание
Владелец sysname Имя владельца объекта.
Объект sysname Имя объекта.
Участник sysname Имя участника, которому были предоставлены разрешения.
Grantor sysname Имя участника, предоставившего разрешения.
протекттипе nvarchar (10) Имя типа защиты:

GRANT REVOKE
Действие nvarchar(60) Имя разрешения. Инструкции с допустимыми разрешениями зависят от типа объекта.
Столбец sysname Тип разрешения:

All = разрешение затрагивает все текущие столбцы объекта.

New = разрешение затрагивает все новые столбцы, которые могут быть изменены для объекта в будущем (с помощью инструкции ALTER).

All+New = сочетание All и New.

Возвращает точку, если тип разрешения не применяется к столбцам.

Remarks

Все аргументы в следующей процедуре являются необязательными. При выполнении без аргументов процедура sp_helprotect отображает все разрешения, которые были предоставлены или запрещены в текущей базе данных.

При указании некоторых, но не всех аргументов используйте именованные аргументы либо указывайте NULL в качестве заполнителя опущенных аргументов. Например, для получения отчета обо всех разрешениях, которые может предоставить участник, владеющий базой данных (dbo), выполните следующее:

EXEC sp_helprotect NULL, NULL, dbo;  

либо

EXEC sp_helprotect @grantorname = 'dbo';  

Данные в отчете сортируются по категории разрешения, владельцу, объекту, получателю разрешения, участнику, предоставившему разрешение, категории типа защиты, типу защиты, действию и столбцу идентификатора.

Разрешения

Необходимо быть членом роли public.

Полученные данные подлежат ограничениям на доступ к метаданным. Сущности, на которые участник не имеет разрешения, не показаны. Дополнительные сведения см. в разделе Metadata Visibility Configuration.

Примеры

A. Список разрешений для таблицы

В следующем примере выводится список разрешений для таблицы titles.

EXEC sp_helprotect 'titles';  

Б. Список разрешений для пользователя

В следующем примере выводится список всех разрешений, которые пользователь Judy имеет в текущей базе данных.

EXEC sp_helprotect NULL, 'Judy';  

В. Список разрешений, предоставленных указанным пользователем

В следующем примере выводится список всех разрешений, которые были предоставлены пользователем Judy в текущей базе данных, с использованием NULL в качестве заполнителей пропущенных параметров.

EXEC sp_helprotect NULL, NULL, 'Judy';  

Г. Список разрешений только на инструкции

В следующем примере выводится список всех разрешений на инструкции в текущей базе данных с использованием NULL в качестве заполнителей пропущенных параметров.

EXEC sp_helprotect NULL, NULL, NULL, 's';   

д) Список разрешений для инструкции CREATE

В следующем примере приведен список всех пользователей, которым предоставлено разрешение CREATE TABLE.

EXEC sp_helprotect @name = 'CREATE TABLE';  

См. также

Хранимые процедуры безопасности (Transact-SQL)
DENY (Transact-SQL)
GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)