Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предоставляет разрешения на таблицу, представление, функцию, возвращающую табличное значение, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, статистическую функцию, очередь обслуживания или синоним.
Соглашения о синтаксисе в Transact-SQL
Синтаксис
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Аргументы
- permission
Указывает разрешение, которое может быть предоставлено на содержащийся в схеме объект. Список разрешений см. в подразделе «Примечания» далее в этом разделе.
ALL
Предоставление ALL не включает все возможные разрешения, оно эквивалентно предоставлению всех разрешений ANSI-92, применимых к указанному объекту. Значение ALL различается для разных типов объектов:разрешения на скалярные функции: EXECUTE, REFERENCES;
разрешения на функции, возвращающие табличное значение: DELETE, INSERT, REFERENCES, SELECT, UPDATE;
разрешения на хранимые процедуры: EXECUTE.
разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE;
разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- PRIVILEGES
Включено для совместимости с ANSI-92. Не изменяет поведение аргумента ALL.
column
Указывает имя столбца в таблице, представление или функции, возвращающей табличное значение, на которых предоставляется разрешение. Указание круглых скобок ( ) обязательно. На столбец могут быть предоставлены только разрешения SELECT, REFERENCES и UPDATE. Аргумент column может быть указан в предложении PERMISSIONS или после имени защищаемого объекта.
Внимание!В SQL Server 2005 запрет (DENY) уровня таблицы имеет меньший приоритет, чем предоставление разрешения (GRANT) уровня столбца. Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости.
- ON [ OBJECT :: ] [ schema_name ] . object_name
Указывает объект, на который предоставляется разрешение. Фраза OBJECT необязательна, если указан аргумент schema_name. Если же она указана, указание квалификатора области (::) обязательно. Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, обязательно указание квалификатора области схемы (.).
- TO <database_principal>
Указывает участника, которому предоставляется разрешение.
- WITH GRANT OPTION
Указывает, что участнику также дается возможность предоставлять указанное разрешение другим участникам.
- AS <database_principal>
Определяет участника, у которого другой участник, выполняющий данный запрос, наследует право предоставлять данное разрешение.
- Database_user
Указывает пользователя базы данных.
- Database_role
Указывает роль базы данных.
- Application_role
Указывает роль приложения.
- Database_user_mapped_to_Windows_User
Указывает пользователя базы данных, сопоставленного с пользователем Windows.
- Database_user_mapped_to_Windows_Group
Указывает пользователя базы данных, сопоставленного с группой Windows.
- Database_user_mapped_to_certificate
Указывает пользователя базы данных, сопоставленного с сертификатом.
- Database_user_mapped_to_asymmetric_key
Указывает пользователя базы данных, сопоставленного с асимметричным ключом.
- Database_user_with_no_login
Указывает пользователя базы данных без соответствующего участника на уровне сервера.
Замечания
Важно! |
|---|
| Сочетание разрешений ALTER и REFERENCE в некоторых случаях может позволить просматривать данные или выполнять несанкционированные функции. Например: Пользователь с разрешением ALTER на таблицу и разрешением REFERENCE на функцию может создавать вычисляемый столбец на основе функции и в результате — выполнять ее. В этом случае пользователю также требуется разрешение SELECT на вычисляемый столбец. |
Сведения об объектах доступны через различные представления каталога. Дополнительные сведения см. в разделе Представления каталога объектов (Transact-SQL).
Объект является защищаемым на уровне схемы. Он содержится в схеме, которая является его родителем в иерархии разрешений. В следующей таблице перечислен ряд отдельных разрешений, которые могут быть предоставлены на объект, а также наиболее общие разрешения, которые неявно их подразумевают.
| Разрешение объекта | Содержится в разрешении объекта | Содержится в разрешении схемы |
|---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Разрешения
Участник, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь разрешение, предоставленное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно содержит предоставляемое разрешение.
При использовании параметра AS налагаются следующие дополнительные требования.
| AS | Необходимо дополнительное разрешение |
|---|---|
Пользователь базы данных |
Разрешение IMPERSONATE на пользователя, членство в фиксированной роли базы данных db_securityadmin, фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Пользователь базы данных, сопоставленный имени входа Windows |
Разрешение IMPERSONATE на пользователя, членство в фиксированной роли базы данных db_securityadmin, фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Пользователь базы данных, сопоставленный группе Windows |
Членство в группе Windows, членство в фиксированной роли базы данных db_securityadmin , фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Пользователь базы данных, сопоставленный сертификату |
Членство в фиксированной роли базы данных db_securityadmin , членство в фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Пользователь базы данных, сопоставленный асимметричному ключу |
Членство в фиксированной роли базы данных db_securityadmin , членство в фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Пользователь базы данных, не сопоставленный серверу-участнику |
Разрешение IMPERSONATE на пользователя, членство в фиксированной роли базы данных db_securityadmin, фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Роль базы данных |
Разрешение ALTER на роль, членство в фиксированной роли базы данных db_securityadmin , фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Роль приложения |
Разрешение ALTER на роль, членство в фиксированной роли базы данных db_securityadmin , фиксированной роли базы данных db_owner или фиксированной серверной роли sysadmin. |
Примеры
А. Предоставление разрешения SELECT на таблицу
В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks.
USE AdventureWorks;
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
Б. Предоставление разрешения EXECUTE на хранимую процедуру
В следующем примере предоставляется разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo роли приложения Recruiting11.
USE AdventureWorks;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
В. Предоставление разрешения REFERENCES на представление с параметром GRANT OPTION
В следующем примере предоставляется разрешение REFERENCES на столбец EmployeeID в представлении HumanResources.vEmployee пользователю Wanida с параметром GRANT OPTION.
USE AdventureWorks;
GRANT REFERENCES (EmployeeID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
См. также
Справочник
DENY, запрет разрешений на объект (Transact-SQL)
REVOKE, отмена разрешения (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Другие ресурсы
Разрешения
Участники
Защищаемые объекты
Важно!