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, которое возвращает все разрешения объекта и инструкции. Если значение представляет объект (таблицы, представление, хранимая процедура или расширенная хранимая процедура), в текущей базе данных этот объект должен быть допустимым. Имя объекта может включать квалификатор владельца в владельце формы.объект.

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечания

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

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

EXEC sp_helprotect NULL, NULL, dbo;  

Or

EXEC sp_helprotect @grantorname = 'dbo';  

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

Разрешения

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

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

Примеры

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

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

EXEC sp_helprotect 'titles';  

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

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

EXEC sp_helprotect NULL, 'Judy';  

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

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

EXEC sp_helprotect NULL, NULL, 'Judy';  

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

В следующем примере выводится список всех разрешений на инструкции в текущей базе данных с использованием 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)