Какое sql выражение можно использовать для добавления прав пользователю

Обновлено: 21.11.2024

Предоставляет разрешения на таблицу, представление, функцию с табличным значением, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, агрегатную функцию, очередь обслуживания или синоним.

Синтаксис

Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.

Аргументы

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 или после имени защищаемого объекта.

Запрет (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
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.

Remarks

Сочетание разрешений 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 CHANGE TRACKING CONTROL VIEW CHANGE TRACKING
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.

Примеры

A. Предоставление разрешения SELECT на таблицу

В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 .

Б. Предоставление разрешения EXECUTE на хранимую процедуру

В. Предоставление разрешения REFERENCES на представление с параметром GRANT OPTION

В следующем примере предоставляется разрешение REFERENCES на столбец BusinessEntityID в представлении HumanResources.vEmployee пользователю Wanida с параметром GRANT OPTION .

Г. Предоставление разрешения SELECT на таблицу без использования фразы OBJECT

В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 .

Д. Предоставление учетной записи домена разрешения SELECT на таблицу

В следующем примере предоставляется разрешение SELECT пользователю AdventureWorks2012\RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 .

Е. Предоставление роли разрешения EXECUTE на процедуру

В следующем примере создается роль, а затем ей предоставляется разрешение EXECUTE на процедуру uspGetBillOfMaterials в базе данных AdventureWorks2012 .

Читайте также: