Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server
Возвращает отчет, который содержит сведения о разрешениях пользователя для объекта или разрешений инструкции в текущей базе данных.
Внимание
sp_helprotect не возвращает сведения о защищаемых объектах, появившихся в SQL Server 2005 (9.x) и более поздних версиях. Вместо этого используйте sys.database_permissions и sys.fn_builtin_permissions .
Не перечисляет разрешения, которые всегда назначаются предопределенным ролям сервера или фиксированным ролям базы данных. Не включает имена входа или пользователей, которые получают разрешения на основе их членства в роли.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_helprotect
[ [ @name = ] N'name' ]
[ , [ @username = ] N'username' ]
[ , [ @grantorname = ] N'grantorname' ]
[ , [ @permissionarea = ] 'permissionarea' ]
[ ; ]
Аргументы
[ @name = ] N'name'
Имя объекта в текущей базе данных или оператор, это разрешения для отчета. @name — nvarchar(776) с значением по умолчаниюNULL, которое возвращает все разрешения объекта и инструкции. Если значение представляет объект (таблицы, представление, хранимая процедура или расширенная хранимая процедура), в текущей базе данных этот объект должен быть допустимым. Имя объекта может включать квалификатор владельца в форме <owner>.<object>.
Если @name является оператором, это может быть CREATE оператор.
[ @username = ] N'username'
Имя субъекта, для которого возвращаются разрешения. @username — sysname( значение по умолчаниюNULL), которое возвращает все субъекты в текущей базе данных. @username должны существовать в текущей базе данных.
[ @grantorname = ] N'grantorname'
Имя субъекта, которому предоставлены разрешения. @grantorname — sysname, с значением по умолчаниюNULL, которое возвращает все сведения о разрешениях, предоставленных любым субъектом в базе данных.
[ @permissionarea = ] 'permissionarea'
Символьная строка, указывающая, следует ли отображать разрешения объекта (символьная строка), разрешения оператора (символьная строкаos) или оба (o s). @permissionarea — varchar(10) с значением по умолчаниюo s. @permissionarea может быть любым сочетанием o или sбез запятых или пробелов между o иs.
Значения кода возврата
0 (успешно) или 1 (сбой).
Результирующий набор
| Имя столбца | Тип данных | Description |
|---|---|---|
Owner |
sysname | Имя владельца объекта. |
Object |
sysname | Имя объекта . |
Grantee |
sysname | Имя участника, которому были предоставлены разрешения. |
Grantor |
sysname | Имя участника, предоставившего разрешения. |
ProtectType |
nvarchar(10) | Имя типа защиты:GRANT REVOKE |
Action |
nvarchar(60) | Имя разрешения. Инструкции с допустимыми разрешениями зависят от типа объекта. |
Column |
sysname | Тип разрешения:All = разрешение охватывает все текущие столбцы объекта.New = разрешение охватывает все новые столбцы, которые могут быть изменены (с помощью ALTER инструкции) для объекта в будущем.All+New = сочетание All и New.Возвращает период, если тип разрешения не применяется к столбцам. |
Замечания
Все аргументы в следующей процедуре являются необязательными. При выполнении без параметров отображает все разрешения, sp_helprotect предоставленные или запрещенные в текущей базе данных.
При указании некоторых, но не всех аргументов используйте именованные аргументы либо указывайте NULL в качестве заполнителя опущенных аргументов. Например, чтобы сообщить обо всех разрешениях владельца базы данных участника (dbo), выполните следующий скрипт:
EXECUTE sp_helprotect NULL, NULL, dbo;
Or
EXECUTE sp_helprotect @grantorname = 'dbo';
Данные в отчете сортируются по категории разрешения, владельцу, объекту, получателю разрешения, участнику, предоставившему разрешение, категории типа защиты, типу защиты, действию и столбцу идентификатора.
Разрешения
Необходимо быть членом роли public.
Полученные данные подлежат ограничениям на доступ к метаданным. Сущности, в которых у субъекта нет разрешений. Дополнительные сведения см. в разделе Metadata Visibility Configuration.
Примеры
А. Вывод списка разрешений для таблицы
В следующем примере выводится список разрешений для таблицы titles.
EXECUTE sp_helprotect 'titles';
B. Вывод списка разрешений для пользователя
В следующем примере выводится список всех разрешений, которые пользователь Judy имеет в текущей базе данных.
EXECUTE sp_helprotect NULL, 'Judy';
В. Перечисление разрешений, предоставленных определенным пользователем
В следующем примере перечислены все разрешения, предоставленные пользователем Judy в текущей базе данных, и используются NULL в качестве заполнителя для отсутствующих параметров.
EXECUTE sp_helprotect NULL, NULL, 'Judy';
D. Вывод списка разрешений оператора только
В следующем примере выводится список всех разрешений на инструкции в текущей базе данных с использованием NULL в качестве заполнителей пропущенных параметров.
EXECUTE sp_helprotect NULL, NULL, NULL, 's';
д) Список разрешений для инструкции CREATE
В следующем примере перечислены все пользователи, которым предоставлено CREATE TABLE разрешение.
EXECUTE sp_helprotect @name = 'CREATE TABLE';