Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
Azure Synapse Analytics
Система платформы аналитики (PDW)
Конечная точка SQL аналитики в Microsoft Fabric
Хранилище в Microsoft Fabric
База данных SQL в Microsoft Fabric
Предоставляет разрешения на таблицу, представление, функцию с табличным значением, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, агрегатную функцию, очередь обслуживания или синоним.
Соглашения о синтаксисе Transact-SQL
Syntax
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...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
Arguments
permission
Указывает разрешение, которое может быть предоставлено на содержащийся в схеме объект. Список разрешений см. в разделе "Примечания".
ALL
Предоставление ALL не включает все возможные разрешения, Предоставление ALL эквивалентно предоставлению всех разрешений ANSI-92, применимых к указанному объекту. Значение ALL различается для разных типов объектов
- Разрешения на скалярные функции: EXECUTE, REFERENCES.
- Разрешения на возвращающую табличное значение функцию: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Разрешения на хранимые процедуры: EXECUTE.
- Разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
Caution
Разрешение ALL является устаревшим и сохраняется только для совместимости.
PRIVILEGES
Включено для совместимости с ANSI-92. Не изменяет работу ALL.
column_name
Указывает имя столбца в таблице, представление или функции с табличным значением, на которых предоставляется разрешение. Указание круглых скобок ( ) обязательно. В столбце могут предоставляться только разрешения SELECT, REFERENCES, UPDATE и UNMASK. column_name можно указать в предложении разрешений или после защищаемого имени.
Caution
Запрет (DENY) уровня таблицы имеет меньший приоритет, чем разрешение (GRANT) уровня столбца. Такая несогласованность в иерархии разрешений сохранена в целях обратной совместимости.
НА [ ОБЪЕКТ :: ] [ schema_name ] . object_name
Указывает объект, на который предоставляется разрешение. Фраза OBJECT необязательна, если указан аргумент schema_name. Если же она указана, указание квалификатора области (::) обязательно. Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, обязательно указание квалификатора области схемы (.).
К <database_principal>
Участник, которому предоставляется разрешение.
ПАРАМЕТР GRANT
Показывает, что участнику будет дана возможность предоставлять указанное разрешение другим участникам.
КАК 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
Important
Сочетание 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 |
Привязка схемы не поддерживается в Azure Synapse Analytics, что может привести к неожиданному поведению при изменении базовых объектов и предоставлении разрешений представлению. Дополнительные сведения см. в представлениях T-SQL с выделенным пулом SQL и бессерверным пулом SQL в Azure Synapse Analytics.
Permissions
Участник (или субъект, указанный с параметром 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 роли сервера. |
Examples
A. Предоставление разрешения SELECT для таблицы
В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2025.
Этот пример не работает в Microsoft Fabric, так как он использует пользователя для входа, прошедшего проверку подлинности SQL, но этот же пример будет работать для пользователя Microsoft Entra ID Fabric, например RosaQdM@contoso.com.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Предоставление разрешения EXECUTE для хранимой процедуры
В следующем примере предоставляется разрешение EXECUTE на хранимую процедуру HumanResources.uspUpdateEmployeeHireInfo роли приложения Recruiting11.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Предоставление разрешения REFERENCES для представления с помощью GRANT OPTION
В следующем примере предоставляется разрешение REFERENCES на столбец BusinessEntityID в представлении HumanResources.vEmployee пользователю Wanida с параметром GRANT OPTION.
Этот пример не работает в Microsoft Fabric, так как он использует пользователя для входа, прошедшего проверку подлинности SQL, но этот же пример будет работать для пользователя Microsoft Entra ID Fabric, например Wanida@contoso.com.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. Предоставление разрешения SELECT для таблицы без использования фразы OBJECT
В следующем примере предоставляется разрешение SELECT пользователю RosaQdM на таблицу Person.Address в базе данных AdventureWorks2025.
Этот пример не работает в Microsoft Fabric, так как он использует пользователя для входа, прошедшего проверку подлинности SQL, но этот же пример будет работать для пользователя Microsoft Entra ID Fabric, например RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. Предоставление разрешения SELECT для таблицы учетной записи домена
В следующем примере предоставляется разрешение SELECT пользователю AdventureWorks2022\RosaQdM на таблицу Person.Address в базе данных AdventureWorks2025.
Этот пример, как записано, не работает в Microsoft Fabric, так как он использует учетную запись домена, но этот же пример будет работать для пользователя Microsoft Entra ID Fabric, например RosaQdM@contoso.com.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. Предоставление разрешения EXECUTE на процедуру роли
В следующем примере создается роль, а затем ей предоставляется разрешение EXECUTE на процедуру uspGetBillOfMaterials в базе данных AdventureWorks2025.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. Предоставление разрешения UNMASK для столбца
В следующем примере предоставляется UNMASK разрешение, часть динамического маскирования данных, для столбца email в таблице Data.Membership пользователю OutreachCoordinator.
Динамическое маскирование данных в настоящее время не поддерживается в Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Связанный контент
- Deny Object Permissions (Transact-SQL)
- РАЗРЕШЕНИЯ ОБЪЕКТА REVOKE (Transact-SQL)
- Представления каталога объектов (Transact-SQL)
- Разрешения (ядро СУБД)
- Субъекты (ядро СУБД)
- Securables
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Динамическое маскирование данных
- Row-Level безопасность