1. Главная страница » Компьютеры

Ms sql grant execute

Автор: | 16.12.2019

ОБЛАСТЬ ПРИМЕНЕНИЯ: 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 a securable to a principal. Общий подход заключается в том, чтобы предоставить на (GRANT…ON…TO). The general concept is to GRANT ON TO . Общее описание разрешений см. в разделе Разрешения (ядро СУБД). For a general discussion of permissions, see Permissions (Database Engine).

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

Синтаксис Syntax

Аргументы Arguments

ALL ALL
Этот параметр устарел и сохранен только для поддержки обратной совместимости. This option is deprecated and maintained only for backward compatibility. Он не предоставляет все возможные разрешения. It does not grant all possible permissions. Предоставление разрешения ALL эквивалентно предоставлению следующих разрешений: Granting ALL is equivalent to granting the following permissions:

Если защищаемым объектом является база данных, аргумент ALL относится к разрешениям BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE и CREATE VIEW. If the securable is a database, ALL means BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, and CREATE VIEW.

Если защищаемым объектом является скалярная функция, аргумент ALL относится к разрешениям EXECUTE и REFERENCES. If the securable is a scalar function, ALL means EXECUTE and REFERENCES.

Если защищаемым объектом является функция с табличным значением, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE. If the securable is a table-valued function, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

Если защищаемая сущность является хранимой процедурой, аргумент ALL подразумевает разрешение EXECUTE. If the securable is a stored procedure, ALL means EXECUTE.

Если защищаемым объектом является таблица, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE. If the securable is a table, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

Если защищаемым объектом является представление, аргумент ALL относится к разрешениям DELETE, INSERT, REFERENCES, SELECT и UPDATE. If the securable is a view, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

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

permission permission
Имя разрешения. Is the name of a permission. Допустимые сопоставления разрешений защищаемых объектов описаны в разделах, перечисленных ниже. The valid mappings of permissions to securables are described in the subtopics listed below.

column column
Указывает имя столбца таблицы, на который предоставляется разрешение. Specifies the name of a column in a table on which permissions are being granted. Необходимы скобки (). The parentheses () are required.

class class
Указывает класс защищаемого объекта, для которого предоставляется разрешение. Specifies the class of the securable on which the permission is being granted. Квалификатор области :: является обязательным. The scope qualifier :: is required.

securable securable
Указывает защищаемый объект, на который предоставляется разрешение. Specifies the securable on which the permission is being granted.

TO principal TO principal
Имя участника. Is the name of a principal. Состав участников, которым можно предоставлять разрешения, меняется в зависимости от защищаемого объекта. The principals to which permissions on a securable can be granted vary, depending on the securable. Допустимые сочетания описаны в разделах, перечисленных ниже. See the subtopics listed below for valid combinations.

GRANT OPTION GRANT OPTION
Показывает, что получающему разрешению будет также дана возможность предоставлять указанное разрешение другим участникам. Indicates that the grantee will also be given the ability to grant the specified permission to other principals.

AS principal AS principal
Используйте предложение AS principal, чтобы указать, что участник, записанный как предоставляющий разрешение, должен быть участником, отличным от пользователя, выполняющего инструкцию. Use the AS principal clause to indicate that the principal recorded as the grantor of the permission should be a principal other than the person executing the statement. Предположим, что пользователь Мария — это участник 12, пользователь Павел — участник 15. For example, presume that user Mary is principal_id 12 and user Raul is principal 15. Мария выполняет GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; . В таблице sys.database_permissions для параметра grantor_prinicpal_id будет указано значение 15 (Павел), хотя инструкция была выполнена пользователем 12 (Мария). Mary executes GRANT SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Now the sys.database_permissions table will indicate that the grantor_prinicpal_id was 15 (Raul) even though the statement was actually executed by user 13 (Mary).

Использовать предложение AS обычно не рекомендуется, за исключением необходимости явного определения цепочки разрешения. Using the AS clause is typically not recommended unless you need to explicitly define the permission chain. Дополнительные сведения см. в подразделе Сводка по алгоритму проверки разрешений раздела Разрешения (ядро СУБД). For more information, see the Summary of the Permission Check Algorithm section of Permissions (Database Engine).

AS в данной инструкции не дает возможность олицетворять другого пользователя. The use of AS in this statement does not imply the ability to impersonate another user.

Remarks Remarks

Полное описание синтаксиса инструкции GRANT сложно. The full syntax of the GRANT statement is complex. Предыдущая диаграмма синтаксиса была упрощена, чтобы продемонстрировать ее структуру. The syntax diagram above was simplified to draw attention to its structure. Полное описание синтаксиса предоставления разрешений на конкретные защищаемые объекты приведено в статьях, перечисленных ниже. Complete syntax for granting permissions on specific securables is described in the articles listed below.

Инструкция REVOKE может использоваться для удаления уже выданных прав доступа, а инструкция DENY может использоваться, чтобы предотвратить получение участником определенного разрешения посредством инструкции GRANT. The REVOKE statement can be used to remove granted permissions, and the DENY statement can be used to prevent a principal from gaining a specific permission through a GRANT.

Предоставление разрешения удаляет DENY или REVOKE для этого разрешения на данный защищаемый объект. Granting a permission removes DENY or REVOKE of that permission on the specified securable. Если то же разрешение запрещено для более высокой области действия, которая содержит данный защищаемый объект, то DENY имеет более высокий приоритет. If the same permission is denied at a higher scope that contains the securable, the DENY takes precedence. Но отмена разрешения, выданного в более высокой области действия, не получает такого приоритета. But revoking the granted permission at a higher scope does not take precedence.

Разрешения уровня базы данных выдаются в пределах области указанной базы данных. Database-level permissions are granted within the scope of the specified database. Если пользователю нужны разрешения на объекты в другой базе данных, необходимо создать для него учетную запись в этой базе данных или предоставить ему разрешение на доступ как к текущей, так и к другим базам данных. If a user needs permissions to objects in another database, create the user account in the other database, or grant the user account access to the other database, as well as the current database.

Запрет (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 the sake of backward compatibility. В будущем выпуске она будет удалена. It will be removed in a future release.

Системная хранимая процедура sp_helprotect сообщает о разрешениях на доступ к защищаемым объектам уровня базы данных. The sp_helprotect system stored procedure reports permissions on a database-level securable.

WITH GRANT OPTION WITH GRANT OPTION

Инструкция GRANT . WITH GRANT OPTION указывает, что получающему разрешение участнику безопасности дана возможность предоставления определенных разрешений другим учетным записям безопасности. The GRANT . WITH GRANT OPTION specifies that the security principal receiving the permission is given the ability to grant the specified permission to other security accounts. Если участник, получивший данное разрешение, является ролью или группой Windows, то для последующего предоставления разрешения объекта пользователям, которые не являются членами этой группы или роли, необходимо использовать предложение AS. When the principal that receives the permission is a role or a Windows group, the AS clause must be used when the object permission needs to be further granted to users who are not members of the group or role. Поскольку именно пользователь, а не группа или роль, может исполнить инструкцию GRANT, при предоставлении разрешения определенный член группы или роли должен использовать предложение AS для явного вызова членства в роли или группе. Because only a user, rather than a group or role, can execute a GRANT statement, a specific member of the group or role must use the AS clause to explicitly invoke the role or group membership when granting the permission. В следующем примере рассматривается порядок использования разрешения WITH GRANT OPTION, предоставленного роли или группе Windows. The following example shows how the WITH GRANT OPTION is used when granted to a role or Windows group.

Диаграмма разрешений SQL Server Chart of SQL Server Permissions

Схему плакатного размера всех разрешений компонента Компонент Database Engine Database Engine в формате PDF см. по ссылке https://aka.ms/sql-permissions-poster. For a poster sized chart of all Компонент Database Engine Database Engine permissions in pdf format, see https://aka.ms/sql-permissions-poster.

Разрешения Permissions

Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое. The grantor (or the principal specified with the AS option) must have either the permission itself with GRANT OPTION, or a higher permission that implies the permission being granted. Если используется параметр AS, налагаются дополнительные ограничения. If using the AS option, additional requirements apply. Дополнительные сведения см. в статьях, посвященных конкретным защищаемым объектам. See the securable-specific article for details.

Владельцы объектов могут предоставлять разрешения на объекты, которыми они владеют. Object owners can grant permissions on the objects they own. Участники, имеющие разрешение CONTROL на защищаемый объект, могут предоставлять разрешение на этот защищаемый объект. Principals with CONTROL permission on a securable can grant permission on that securable.

Участники, которым предоставлено разрешение CONTROL SERVER, такие как члены предопределенной роли сервера sysadmin , могут предоставлять любое разрешение на любой защищаемый объект сервера. Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can grant any permission on any securable in the server. Участники, получившие разрешение CONTROL на базу данных, такие как члены предопределенной роли базы данных db_owner, могут предоставлять любое разрешение на любой защищаемый объект в базе данных. Grantees of CONTROL permission on a database, such as members of the db_owner fixed database role, can grant any permission on any securable in the database. Владельцы разрешения CONTROL, связанного со схемой, могут предоставлять любые разрешения на работу с любыми объектами, содержащимися в данной схеме. Grantees of CONTROL permission on a schema can grant any permission on any object within the schema.

Примеры Examples

В приведенной ниже таблице перечислены защищаемые объекты и статьи, в которых описывается синтаксис инструкций по работе с ними. The following table lists the securables and the articles that describe the securable-specific syntax.

ПРИМЕНЯЕТСЯ К: SQL Server (начиная с 2008) База данных SQL Azure Хранилище данных SQL Azure Parallel Data Warehouse

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

Область применения: SQL Server (отSQL Server 2008 до текущей версии), База данных SQL Azure.

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

разрешение
Указывает разрешение, которое может быть предоставлено на содержащийся в схеме объект. Список разрешений см. в подразделе «Примечания» далее в этом разделе.

ALL
Предоставление ALL не включает все возможные разрешения, оно эквивалентно предоставлению всех разрешений ANSI-92, применимых к указанному объекту. Значение ALL различается для разных типов объектов

Разрешения на скалярные функции: выполнение, ссылки.

Табличная функция разрешения: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Разрешения на хранимые процедуры: выполнение.

Таблица разрешений: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Просмотреть разрешения: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

PRIVILEGES
Включено для обеспечения совместимости с ANSI-92. Не изменяет работу ALL.

столбец
Указывает имя столбца в таблице, представление или функции с табличным значением, на которых предоставляется разрешение. Скобки () являются обязательными. На столбец могут быть предоставлены только разрешения SELECT, REFERENCES и UPDATE. столбец может быть указан в предложении permissions или после имени защищаемого объекта.

Внимание!

Запрет (DENY) уровня таблицы имеет меньший приоритет, чем разрешение (GRANT) уровня столбца. Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости.

ON [объект::] [ schema_name ]. object_name
Указывает объект, на который предоставляется разрешение. Фраза OBJECT необязательна Если schema_name указано. Если ЖЕ она указана, требуется квалификатор области (::). Если schema_name не указан, используется схема по умолчанию. Если schema_name указано, указание квалификатора области схемы (.).

TO
Участник, которому предоставляется разрешение.

WITH GRANT OPTION
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам.

AS
Указывает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения.

Пользовательбазыданных
Указывает пользователя базы данных.

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
Выполните CONTROL Выполните
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 на хранимую процедуру

В следующем примере предоставляется разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo роли приложения Recruiting11 .

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

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

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

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

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

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

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

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

ОБЛАСТЬ ПРИМЕНЕНИЯ: 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 a table, view, table-valued function, stored procedure, extended stored procedure, scalar function, aggregate function, service queue, or synonym.

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

Синтаксис Syntax

Аргументы Arguments

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

ALL ALL
Предоставление ALL не включает все возможные разрешения, Granting ALL does not grant all possible permissions. оно эквивалентно предоставлению всех разрешений ANSI ANSI -92, применимых к указанному объекту. Granting ALL is equivalent to granting all ANSI 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 ANSI -92. Included for ANSI 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 granted. Указание круглых скобок ( ) обязательно. The parentheses ( ) are required. На столбец могут быть предоставлены только разрешения SELECT, REFERENCES и UPDATE. Only SELECT, REFERENCES, and UPDATE permissions can be granted 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 granted. Фраза 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 granted.

WITH GRANT OPTION WITH GRANT OPTION
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам. Indicates that the principal will also be given the ability to grant the specified permission to other principals.

AS указывает участника, от которого участник, выполняющий данный запрос, наследует право на предоставление разрешения. AS Specifies a principal from which the principal executing this query derives its right to grant 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

Сочетание разрешений ALTER и REFERENCE в некоторых случаях может позволить просматривать данные или выполнять несанкционированные функции. A combination of ALTER and REFERENCE permissions in some cases could allow the grantee to view data or execute unauthorized functions. Пример: Пользователь с разрешением ALTER на таблицу и разрешением REFERENCE на функцию может создавать вычисляемый столбец на основе функции и в результате — выполнять ее. For example: A user with ALTER permission on a table and REFERENCE permission on a function can create a computed column over a function and have it be executed. В этом случае пользователю также требуется разрешение SELECT на вычисляемый столбец. In this case the user would also need SELECT permission on the computed column.

Сведения об объектах доступны через различные представления каталога. 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 granted 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 ALTER CONTROL CONTROL ALTER ALTER
CONTROL CONTROL CONTROL CONTROL CONTROL CONTROL
DELETE DELETE CONTROL CONTROL DELETE DELETE
EXECUTE EXECUTE CONTROL CONTROL EXECUTE EXECUTE
INSERT INSERT CONTROL CONTROL INSERT INSERT
RECEIVE RECEIVE CONTROL CONTROL CONTROL CONTROL
REFERENCES REFERENCES CONTROL CONTROL REFERENCES REFERENCES
SELECT SELECT RECEIVE RECEIVE SELECT SELECT
TAKE OWNERSHIP TAKE OWNERSHIP CONTROL CONTROL CONTROL CONTROL
UPDATE UPDATE CONTROL CONTROL UPDATE UPDATE
VIEW CHANGE TRACKING VIEW CHANGE TRACKING CONTROL CONTROL VIEW CHANGE TRACKING VIEW CHANGE TRACKING
VIEW DEFINITION VIEW DEFINITION CONTROL CONTROL VIEW DEFINITION VIEW DEFINITION

Разрешения Permissions

Объект, предоставляющий разрешение (или участник, указанный параметром AS), должен иметь либо само разрешение, выданное с помощью параметра GRANT OPTION, либо разрешение более высокого уровня, которое неявно включает предоставляемое. The grantor (or the principal specified with the AS option) must have either the permission itself with GRANT OPTION, or a higher permission that implies the permission being granted.

При использовании параметра AS налагаются следующие дополнительные требования. If you are using the AS option, the following additional requirements apply.

AS AS Необходимо дополнительное разрешение Additional permission required
пользователь базы данных; Database user Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. IMPERSONATE permission on the user, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
пользователь базы данных, сопоставленный с именем входа Windows; Database user mapped to a Windows login Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. IMPERSONATE permission on the user, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
Пользователь базы данных, сопоставленный группе Windows Database user mapped to a Windows Group Членство в группе Windows, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. Membership in the Windows group, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
пользователь базы данных, сопоставленный с сертификатом; Database user mapped to a certificate Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. Membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
пользователь базы данных, сопоставленный с асимметричным ключом; Database user mapped to an asymmetric key Членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. Membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
Пользователь базы данных, не сопоставленный ни с одним участником на уровне сервера Database user not mapped to any server principal Разрешение IMPERSONATE для пользователя, членство в предопределенной роли базы данных db_securityadmin, членство в предопределенной роли базы данных db_owner или членство в предопределенной роли сервера sysadmin. IMPERSONATE permission on the user, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
роль базы данных; Database role Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin. ALTER permission on the role, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.
Роль приложения Application role Разрешение ALTER на роль, членство в предопределенной роли базы данных db_securityadmin, предопределенной роли базы данных db_owner или предопределенной роли сервера sysadmin. ALTER permission on the role, membership in the db_securityadmin fixed database role, membership in the db_owner fixed database role, or membership in the sysadmin fixed server role.

Примеры Examples

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

В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 . The following example grants SELECT permission to user RosaQdM on table Person.Address in the AdventureWorks2012 database.

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

В следующем примере предоставляется разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo роли приложения Recruiting11 . The following example grants EXECUTE permission on stored procedure HumanResources.uspUpdateEmployeeHireInfo to an application role called Recruiting11 .

В. C. Предоставление разрешения REFERENCES на представление с параметром GRANT OPTION Granting REFERENCES permission on a view with GRANT OPTION

В следующем примере предоставляется разрешение REFERENCES на столбец BusinessEntityID в представлении HumanResources.vEmployee пользователю Wanida с параметром GRANT OPTION . The following example grants REFERENCES permission on column BusinessEntityID in view HumanResources.vEmployee to user Wanida with GRANT OPTION .

Г. D. Предоставление разрешения SELECT на таблицу без использования фразы OBJECT Granting SELECT permission on a table without using the OBJECT phrase

В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 . The following example grants SELECT permission to user RosaQdM on table Person.Address in the AdventureWorks2012 database.

Д. E. Предоставление учетной записи домена разрешения SELECT на таблицу Granting SELECT permission on a table to a domain account

В следующем примере предоставляется разрешение SELECT пользователю AdventureWorks2012RosaQdM на таблицу Person.Address в базе данных AdventureWorks2012 . The following example grants SELECT permission to user AdventureWorks2012RosaQdM on table Person.Address in the AdventureWorks2012 database.

Е. F. Предоставление роли разрешения EXECUTE на процедуру Granting EXECUTE permission on a procedure to a role

В следующем примере создается роль, а затем ей предоставляется разрешение EXECUTE на процедуру uspGetBillOfMaterials в базе данных AdventureWorks2012 . The following example creates a role and then grants EXECUTE permission to the role on procedure uspGetBillOfMaterials in the AdventureWorks2012 database.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *