sp_helprotect (Transact-SQL)
Возвращает отчет со сведениями о разрешениях пользователя на объект или инструкцию в текущей базе данных.
Важно! |
---|
Процедура sp_helprotect не возвращает сведений о защищаемых объектах, появившихся в SQL Server 2005. Используйте вместо нее представление каталога sys.database_permissions и функцию fn_builtin_permissions. |
Синтаксис
sp_helprotect [ [ @name = ] 'object_statement' ]
[ , [ @username = ] 'security_account' ]
[ , [ @grantorname = ] 'grantor' ]
[ , [ @permissionarea = ] 'type' ]
Аргументы
[ @name = ] 'object_statement'
Имя инструкции или объекта в текущей базе данных, разрешения на который выводятся в отчете. Аргумент object_statement имеет тип nvarchar(776) и значение по умолчанию NULL, при котором возвращаются разрешения на все объекты и инструкции. Если значение представляет объект (таблица, представление, хранимая процедура или расширенная хранимая процедура), в текущей базе данных этот объект должен быть допустимым. Имя объекта может включать квалификатор владельца в форме owner**.**object.Если аргумент object_statement представляет инструкцию, это может быть одна из следующих инструкций:
CREATE DATABASE
CREATE DEFAULT
CREATE FUNCTION
CREATE PROCEDURE
CREATE RULE
CREATE TABLE
CREATE VIEW
BACKUP DATABASE
BACKUP LOG
[ @username = ] 'security_account'
Имя участника, для которого возвращаются разрешения. Аргумент security_account имеет тип sysname и значение по умолчанию NULL, при котором возвращаются сведения обо всех участниках текущей базы данных. Участник с именем security_account должен существовать в текущей базе данных.[ @grantorname = ] 'grantor'
Имя участника, предоставившего разрешения. Аргумент grantor имеет тип sysname и значение по умолчанию NULL, при котором возвращаются все сведения о разрешениях, предоставляемых любым участником базы данных.[ @permissionarea = ] 'type'
Символьная строка, которая означает, будут ли отображены разрешения на объекты (символ o), инструкции (символ s) или на то и другое (os). Аргумент type имеет тип varchar(10) и значение по умолчанию os. Аргумент type может быть комбинацией символов o и s, разделенных запятой или пробелом.
Значения кодов возврата
0 (успешное завершение) или 1 (ошибка)
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
---|---|---|
Owner |
sysname |
Имя владельца объекта. |
Object |
sysname |
Имя объекта. |
Grantee |
sysname |
Имя участника, которому были предоставлены разрешения. |
Grantor |
sysname |
Имя участника, предоставившего разрешения. |
ProtectType |
nvarchar(10) |
Имя типа защиты: GRANT REVOKE |
Action |
nvarchar(20) |
Имя разрешения:
|
Column |
sysname |
Тип разрешения: All = разрешение затрагивает все текущие столбцы объекта. New = разрешение затрагивает все новые столбцы, которые могут быть изменены для объекта в будущем (с помощью инструкции ALTER). All+New = сочетание All и New. |
Замечания
Все аргументы в следующей процедуре являются необязательными. При выполнении без аргументов процедура sp_helprotect отображает все разрешения, которые были предоставлены или запрещены в текущей базе данных.
При указании некоторых, но не всех, аргументов используйте именованные аргументы, либо указывайте NULL в качестве местозаполнителя опущенных аргументов. Например, для получения отчета обо всех разрешениях, которые может предоставить участник, владеющий базой данных (dbo), выполните следующее:
EXEC sp_helprotect NULL, NULL, dbo
Или
EXEC sp_helprotect @grantorname = 'dbo'
Данные в отчете сортируются по категории разрешения, владельцу, объекту, получателю разрешения, участнику, предоставившему разрешение, категории типа защиты, типу защиты, действию и столбцу идентификатора.
Разрешения
Необходимо быть членом роли public.
Полученные данные подлежат ограничениям на доступ к метаданным. Сущности, к которым участник не имеет доступа, не показываются. Дополнительные сведения см. в разделе Настройка видимости метаданных.
Примеры
А. Список разрешений для таблицы
В следующем примере выводится список разрешений для таблицы 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'