ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Предоставляет разрешения на доступ к таким системным объектам, как системные хранимые процедуры, расширенные хранимые процедуры, функции и представления. Grants permissions on system objects such as system stored procedures, extended stored procedures, functions, and views.

Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions

Синтаксис Syntax

Аргументы Arguments

[ sys.] . [ sys.] .
Квалификатор sys обязателен только при обращении к представлениям каталогов и к динамическим административным представлениям. The sys qualifier is required only when you are referring to catalog views and dynamic management views.

system_object system_object
Задает объект, для которого предоставляется разрешение. Specifies the object on which permission is being granted.

principal principal
Участник, которому предоставляется разрешение. Specifies the principal to which the permission is being granted.

Примечания Remarks

Данная инструкция может быть использована для предоставления разрешений на доступ к определенным хранимым процедурам, расширенным хранимым процедурам, функциям с табличным значением, скалярным функциям, представлениям, представлениям каталогов и совместимостей, представлениям INFORMATION_SCHEMA, динамическим административным представлениям, а также системным таблицам, установленным SQL Server SQL Server . This statement can be used to grant permissions on certain stored procedures, extended stored procedures, table-valued functions, scalar functions, views, catalog views, compatibility views, INFORMATION_SCHEMA views, dynamic management views, and system tables that are installed by SQL Server SQL Server . Каждый из этих системных объектов существует в виде уникальной записи в базе данных ресурсов сервера (mssqlsystemresource). Each of these system objects exists as a unique record in the resource database of the server (mssqlsystemresource). Она доступна только для чтения. The resource database is read-only. Ссылка на объект представляется в виде записи в схеме sys для каждой базы данных. A link to the object is exposed as a record in the sys schema of every database. Разрешение на выполнение или выбор системного объекта может быть предоставлено, запрещено или отозвано. Permission to execute or select a system object can be granted, denied, and revoked.

Предоставление разрешения на выполнение или выбор объекта не подразумевает обязательного наличия других разрешений на использование данного объекта. Granting permission to execute or select an object does not necessarily convey all the permissions required to use the object. В большинстве случаев для действий над объектами необходимо обладать дополнительными разрешениями. Most objects perform operations for which additional permissions are required. Например, пользователь, обладающий разрешением EXECUTE на процедуру sp_addlinkedserver, но при этом не являющийся членом предопределенной роли сервера sysadmin, не имеет права создавать связанные серверы. For example, a user that is granted EXECUTE permission on sp_addlinkedserver cannot create a linked server unless the user is also a member of the sysadmin fixed server role.

Разрешение имен по умолчанию устраняет проблему неправомочных имен процедур в базе данных ресурсов. Default name resolution resolves unqualified procedure names to the resource database. Поэтому квалификатор sys обязателен только при указании представлений каталогов и динамических административных представлений. Therefore, the sys qualifier is only required when you are specifying catalog views and dynamic management views.

Разрешение на доступ к триггерам и столбцам системных объектов не предоставляется. Granting permissions on triggers and on columns of system objects is not supported.

При обновлении SQL Server SQL Server разрешения на доступ к системным объектам сохраняются. Permissions on system objects will be preserved during upgrades of SQL Server SQL Server .

Системные объекты отображаются в представлении каталога sys.system_objects. System objects are visible in the sys.system_objects catalog view. Разрешения на доступ к системным объектам отображаются в представлении каталога sys.database_permissions в базе данных master. The permissions on system objects are visible in the sys.database_permissions catalog view in the master database.

В результате выполнения следующего запроса извлекаются данные о разрешениях на доступ к системным объектам: The following query returns information about permissions of system objects:

Разрешения Permissions

Необходимо разрешение CONTROL SERVER. Requires CONTROL SERVER permission.

Примеры Examples

A. A. Предоставление разрешения SELECT на представление Granting SELECT permission on a view

В ходе выполнения следующего примера имени входа SQL Server SQL Server предоставляется разрешение Sylvester1 на выбор представления, отображающего имена входа SQL Server SQL Server . The following example grants the SQL Server SQL Server login Sylvester1 permission to select a view that lists SQL Server SQL Server logins. Затем предоставляется дополнительное разрешение на просмотр метаданных имен входа SQL Server SQL Server , принадлежащих другим пользователям. The example then grants the additional permission that is required to view metadata on SQL Server SQL Server logins that are not owned by the user.

Б. B. Предоставление разрешения EXECUTE на расширенную хранимую процедуру Granting EXECUTE permission on an extended stored procedure

В следующем примере имени входа EXECUTE предоставляется разрешение xp_readmail на процедуру Sylvester1 . The following example grants EXECUTE permission on xp_readmail to Sylvester1 .

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Запрещает разрешения на член класса OBJECT защищаемых объектов. Denies permissions on a member of the OBJECT class of securables. Элементы класса OBJECT: таблицы, представления, функции с табличным значением, хранимые процедуры, расширенные хранимые процедуры, скалярные функции, агрегатные функции, очереди обслуживания и синонимы. These are the members of the OBJECT class: tables, views, table-valued functions, stored procedures, extended stored procedures, scalar functions, aggregate functions, service queues, and synonyms.

Синтаксические обозначения в Transact-SQL Transact-SQL Syntax Conventions

Синтаксис Syntax

Аргументы Arguments

permission permission
Обозначает разрешение, которое можно запретить для содержащегося в схеме объекта. Specifies a permission that can be denied on a schema-contained object. Список разрешений см. в подразделе "Примечания" далее в этом разделе. For a list of the permissions, see the Remarks section later in this topic.

ALL ALL
Запрет разрешения ALL не запрещает все возможные разрешения. Denying ALL does not deny all possible permissions. Запрет ALL эквивалентен запрету всех разрешений ANSI-92, применимых к данному объекту. Denying ALL is equivalent to denying all ANSI-92 permissions applicable to the specified object. Значение ALL различается для разных типов объектов The meaning of ALL varies as follows:

  • Разрешения на скалярные функции: EXECUTE, REFERENCES. Scalar function permissions: EXECUTE, REFERENCES.
  • Разрешения на функции с табличным значением: DELETE, INSERT, REFERENCES, SELECT, UPDATE. Table-valued function permissions: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Разрешения на хранимые процедуры: EXECUTE. Stored Procedure permissions: EXECUTE.
  • Разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE. Table permissions: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
  • Разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE. View permissions: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

PRIVILEGES PRIVILEGES
Включено для совместимости с ANSI-92. Included for ANSI-92 compliance. Не изменяет работу ALL. Does not change the behavior of ALL.

column column
Указывает имя столбца в таблице, представлении или функции с табличным значением, для которых запрещается разрешение. Specifies the name of a column in a table, view, or table-valued function on which the permission is being denied. Указание круглых скобок ( ) обязательно. The parentheses ( ) are required. Для столбца можно запрещать только разрешения SELECT, REFERENCES и UPDATE. Only SELECT, REFERENCES, and UPDATE permissions can be denied on a column. Аргумент column может быть указан в предложении PERMISSIONS или после имени защищаемого объекта. column can be specified in the permissions clause or after the securable name.

Запрет (DENY) уровня таблицы имеет меньший приоритет, чем разрешение (GRANT) уровня столбца. A table-level DENY does not take precedence over a column-level GRANT. Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости. This inconsistency in the permissions hierarchy has been preserved for backward compatibility.

ON [ OBJECT :: ] [ schema_name ] . ON [ OBJECT :: ] [ schema_name ] . object_name object_name
Указывает объект, для которого запрещается разрешение. Specifies the object on which the permission is being denied. Фраза OBJECT необязательна, если указан аргумент schema_name. The OBJECT phrase is optional if schema_name is specified. Если же она указана, указание квалификатора области ( :: ) обязательно. If the OBJECT phrase is used, the scope qualifier (::) is required. Если не указан аргумент schema_name, подразумевается схема по умолчанию. If schema_name is not specified, the default schema is used. Если указан аргумент schema_name, обязательно указание квалификатора области схемы ( . ). If schema_name is specified, the schema scope qualifier (.) is required.

TO TO
Задает участника, для которого запрещается разрешение. Specifies the principal to which the permission is being denied.

CASCADE CASCADE
Указывает, что запрещаемое разрешение также запрещается для других участников, которым оно было предоставлено данным участником. Indicates that the permission being denied is also denied to other principals to which it has been granted by this principal.

AS AS
Задает участника, от которого участник, выполняющий данный запрос, получает право на запрет разрешения. Specifies a principal from which the principal executing this query derives its right to deny the permission.

Database_user Database_user
Указывает пользователя базы данных. Specifies a database user.

Database_role Database_role
Указывает роль базы данных. Specifies a database role.

Application_role Application_role
Указывает роль приложения. Specifies an application role.

Database_user_mapped_to_Windows_User Database_user_mapped_to_Windows_User
Указывает пользователя базы данных, сопоставленного с пользователем Windows. Specifies a database user mapped to a Windows user.

Database_user_mapped_to_Windows_Group Database_user_mapped_to_Windows_Group
Указывает пользователя базы данных, сопоставленного с группой Windows. Specifies a database user mapped to a Windows group.

Database_user_mapped_to_certificate Database_user_mapped_to_certificate
Указывает пользователя базы данных, сопоставленного с сертификатом. Specifies a database user mapped to a certificate.

Database_user_mapped_to_asymmetric_key Database_user_mapped_to_asymmetric_key
Указывает пользователя базы данных, сопоставленного с асимметричным ключом. Specifies a database user mapped to an asymmetric key.

Database_user_with_no_login Database_user_with_no_login
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня. Specifies a database user with no corresponding server-level principal.

Remarks Remarks

Сведения об объектах доступны через различные представления каталога. Information about objects is visible in various catalog views. Дополнительные сведения см. в разделе Представления каталога объектов (Transact-SQL). For more information, see Object Catalog Views (Transact-SQL).

Объект является защищаемым на уровне схемы. Он содержится в схеме, которая является его родителем в иерархии разрешений. An object is a schema-level securable contained by the schema that is its parent in the permissions hierarchy. Наиболее специфичные и ограниченные разрешения, которые можно запретить для объекта, перечислены в следующей таблице вместе с общими разрешениями, неявно содержащими их. The most specific and limited permissions that can be denied on an object are listed in the following table, together with the more general permissions that include them by implication.

Разрешение объекта Object permissionСодержится в разрешении объекта Implied by object permissionСодержится в разрешении схемы Implied by schema permission
ALTER ALTERCONTROL CONTROLALTER ALTER
CONTROL CONTROLCONTROL CONTROLCONTROL CONTROL
DELETE DELETECONTROL CONTROLDELETE DELETE
EXECUTE EXECUTECONTROL CONTROLEXECUTE EXECUTE
INSERT INSERTCONTROL CONTROLINSERT INSERT
RECEIVE RECEIVECONTROL CONTROLCONTROL CONTROL
REFERENCES REFERENCESCONTROL CONTROLREFERENCES REFERENCES
SELECT SELECTRECEIVE RECEIVESELECT SELECT
TAKE OWNERSHIP TAKE OWNERSHIPCONTROL CONTROLCONTROL CONTROL
UPDATE UPDATECONTROL CONTROLUPDATE UPDATE
VIEW CHANGE TRACKING VIEW CHANGE TRACKINGCONTROL CONTROLVIEW CHANGE TRACKING VIEW CHANGE TRACKING
VIEW DEFINITION VIEW DEFINITIONCONTROL CONTROLVIEW DEFINITION VIEW DEFINITION

Разрешения Permissions

Необходимо разрешение CONTROL для данного объекта. Requires CONTROL permission on the object.

При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который запрещаются для этого участника. If you use the AS clause, the specified principal must own the object on which permissions are being denied.

Примеры Examples

В следующих примерах используется база данных AdventureWorks. The following examples use the AdventureWorks database.

При попытке сделать Detach БД возникала ошибка — Разрешение EXECUTE запрещено для объекта sp_detach_db .

Данная ситуация возникла с MS SQL Express, решается путем добавления пользователя в группу sysadmin, как это сделать написано здесь, в момент добавления может возникнуть ошибка о невозможности проведения операции, так как параметры SQL не разрешают устанавливать удаленные соединения, как этот вопрос решается смотрим здесь.