Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает отчет со сведениями о разрешениях пользователя на объект или инструкцию в текущей базе данных.
Важно! |
|---|
Процедура sp_helprotect не возвращает сведений о защищаемых объектах, появившихся в SQL Server 2005.Используйте вместо нее представление каталога sys.database_permissions и функцию fn_builtin_permissions. |
Не включает разрешения, которые всегда присваиваются предопределенным ролям сервера или базы данных. Не включает имена входа и пользователей, которые получают разрешения на основе своего членства в роли.
Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии). |
Cинтаксические обозначения в Transact-SQL
Синтаксис
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.
[ @username = ] 'security_account'
Имя участника, для которого возвращаются разрешения. Аргумент security_account имеет тип sysname и значение по умолчанию NULL, когда возвращаются все участники текущей базы данных. Значение security_account должно существовать в текущей базе данных.[ @grantorname = ] 'grantor'
Имя участника, который предоставил разрешения. Аргумент grantor имеет тип sysname и значение по умолчанию NULL, когда возвращаются все сведения о разрешениях, выданных всеми участниками базы данных.[ @permissionarea = ] 'type'
Эта символьная строка указывает, какие разрешения отображать: разрешения на объекты (строка символов o), разрешения на инструкции (строка символов s) или то и другое (o s). Аргумент type имеет тип varchar(10) и значение по умолчанию o s. Значение type может быть любой комбинацией o и s с запятыми или пробелами между o и s или без них.
Значения кода возврата
0 (успешное завершение) или 1 (неудачное завершение)
Результирующие наборы
Имя столбца |
Тип данных |
Описание |
|---|---|---|
Владелец |
sysname |
Имя владельца объекта. |
Объект |
sysname |
Имя объекта. |
Grantee |
sysname |
Имя участника, которому были предоставлены разрешения. |
Grantor |
sysname |
Имя участника, предоставившего разрешения. |
ProtectType |
nvarchar(10) |
Имя типа защиты: GRANT REVOKE |
Действие |
nvarchar(60) |
Имя разрешения. Инструкции с допустимыми разрешениями зависят от типа объекта. |
Столбец |
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';
Д.Список разрешений для инструкции CREATE
В следующем примере приведен список всех пользователей, которым предоставлено разрешение CREATE TABLE.
EXEC sp_helprotect @name = 'CREATE TABLE';
См. также
Справочник
Хранимые процедуры безопасности (Transact-SQL)
Важно!