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)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по