mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-15 19:02:04 +00:00
cd14f9ebcb
* split up select.md * array-join.md basic refactoring * distinct.md basic refactoring * format.md basic refactoring * from.md basic refactoring * group-by.md basic refactoring * having.md basic refactoring * additional index.md refactoring * into-outfile.md basic refactoring * join.md basic refactoring * limit.md basic refactoring * limit-by.md basic refactoring * order-by.md basic refactoring * prewhere.md basic refactoring * adjust operators/index.md links * adjust sample.md links * adjust more links * adjust operatots links * fix some links * adjust aggregate function article titles * basic refactor of remaining select clauses * absolute paths in make_links.sh * run make_links.sh * remove old select.md locations * translate docs/es * translate docs/fr * translate docs/fa * remove old operators.md location * change operators.md links * adjust links in docs/es * adjust links in docs/es * minor texts adjustments * wip * update machine translations to use new links * fix changelog * es build fixes * get rid of some select.md links * temporary adjust ru links * temporary adjust more ru links * improve curly brace handling * adjust ru as well * fa build fix * ru link fixes * zh link fixes * temporary disable part of anchor checks
477 lines
22 KiB
Markdown
477 lines
22 KiB
Markdown
---
|
|
machine_translated: true
|
|
machine_translated_rev: 72537a2d527c63c07aa5d2361a8829f3895cf2bd
|
|
toc_priority: 39
|
|
toc_title: GRANT
|
|
---
|
|
|
|
# GRANT {#grant}
|
|
|
|
- Accorder [privilège](#grant-privileges) pour ClickHouse comptes d'utilisateurs ou des rôles.
|
|
- Affecte des rôles à des comptes d'utilisateurs ou à d'autres rôles.
|
|
|
|
Pour révoquer les privilèges, utilisez [REVOKE](revoke.md) déclaration. Vous pouvez également classer les privilèges accordés par le [SHOW GRANTS](show.md#show-grants-statement) déclaration.
|
|
|
|
## Accorder La Syntaxe Des Privilèges {#grant-privigele-syntax}
|
|
|
|
``` sql
|
|
GRANT [ON CLUSTER cluster_name] privilege[(column_name [,...])] [,...] ON {db.table|db.*|*.*|table|*} TO {user | role | CURRENT_USER} [,...] [WITH GRANT OPTION]
|
|
```
|
|
|
|
- `privilege` — Type of privilege.
|
|
- `role` — ClickHouse user role.
|
|
- `user` — ClickHouse user account.
|
|
|
|
Le `WITH GRANT OPTION` clause de subventions `user` ou `role` avec l'autorisation de réaliser des `GRANT` requête. Les utilisateurs peuvent accorder des privilèges de la même portée qu'ils ont et moins.
|
|
|
|
## Attribution De La Syntaxe Du Rôle {#assign-role-syntax}
|
|
|
|
``` sql
|
|
GRANT [ON CLUSTER cluster_name] role [,...] TO {user | another_role | CURRENT_USER} [,...] [WITH ADMIN OPTION]
|
|
```
|
|
|
|
- `role` — ClickHouse user role.
|
|
- `user` — ClickHouse user account.
|
|
|
|
Le `WITH ADMIN OPTION` clause de jeux [ADMIN OPTION](#admin-option-privilege) privilège pour `user` ou `role`.
|
|
|
|
## Utilisation {#grant-usage}
|
|
|
|
Utiliser `GRANT` votre compte doit avoir le `GRANT OPTION` privilège. Vous ne pouvez accorder des privilèges que dans le cadre de vos privilèges de Compte.
|
|
|
|
Par exemple, l'administrateur a accordé des privilèges `john` compte par la requête:
|
|
|
|
``` sql
|
|
GRANT SELECT(x,y) ON db.table TO john WITH GRANT OPTION
|
|
```
|
|
|
|
Cela signifie que `john` a la permission d'effectuer:
|
|
|
|
- `SELECT x,y FROM db.table`.
|
|
- `SELECT x FROM db.table`.
|
|
- `SELECT y FROM db.table`.
|
|
|
|
`john` ne pouvez pas effectuer de `SELECT z FROM db.table`. Le `SELECT * FROM db.table` aussi n'est pas disponible. En traitant cette requête, ClickHouse ne renvoie aucune donnée, même `x` et `y`. La seule exception est si une table contient uniquement `x` et `y` colonnes, dans ce cas ClickHouse renvoie toutes les données.
|
|
|
|
Également `john` a l' `GRANT OPTION` privilège, de sorte qu'il peut accorder à d'autres utilisateurs avec des privilèges de la même ou de la plus petite portée.
|
|
|
|
Spécification des privilèges vous pouvez utiliser asterisk (`*`) au lieu d'une table ou d'un nom de base de données. Par exemple, l' `GRANT SELECT ON db.* TO john` requête permet `john` pour effectuer la `SELECT` requête sur toutes les tables dans `db` la base de données. En outre, vous pouvez omettre le nom de la base de données. Dans ce cas, des privilèges sont accordés pour la base de données actuelle, par exemple: `GRANT SELECT ON * TO john` accorde le privilège sur toutes les tables dans la base de données actuelle, `GRANT SELECT ON mytable TO john` accorde le privilège sur le `mytable` table dans la base de données actuelle.
|
|
|
|
L'accès à la `system` la base de données est toujours autorisée (puisque cette base de données est utilisée pour traiter les requêtes).
|
|
|
|
Vous pouvez accorder plusieurs privilèges à plusieurs comptes dans une requête. Requête `GRANT SELECT, INSERT ON *.* TO john, robin` permet de comptes `john` et `robin` pour effectuer la `INSERT` et `SELECT` des requêtes sur toutes les tables de toutes les bases de données sur le serveur.
|
|
|
|
## Privilège {#grant-privileges}
|
|
|
|
Privilège est une autorisation pour effectuer un type spécifique de requêtes.
|
|
|
|
Les privilèges ont une structure hiérarchique. Un ensemble de requêtes autorisées dépend de la portée des privilèges.
|
|
|
|
Hiérarchie des privilèges:
|
|
|
|
- [SELECT](#grant-select)
|
|
- [INSERT](#grant-insert)
|
|
- [ALTER](#grant-alter)
|
|
- `ALTER TABLE`
|
|
- `ALTER UPDATE`
|
|
- `ALTER DELETE`
|
|
- `ALTER COLUMN`
|
|
- `ALTER ADD COLUMN`
|
|
- `ALTER DROP COLUMN`
|
|
- `ALTER MODIFY COLUMN`
|
|
- `ALTER COMMENT COLUMN`
|
|
- `ALTER CLEAR COLUMN`
|
|
- `ALTER RENAME COLUMN`
|
|
- `ALTER INDEX`
|
|
- `ALTER ORDER BY`
|
|
- `ALTER ADD INDEX`
|
|
- `ALTER DROP INDEX`
|
|
- `ALTER MATERIALIZE INDEX`
|
|
- `ALTER CLEAR INDEX`
|
|
- `ALTER CONSTRAINT`
|
|
- `ALTER ADD CONSTRAINT`
|
|
- `ALTER DROP CONSTRAINT`
|
|
- `ALTER TTL`
|
|
- `ALTER MATERIALIZE TTL`
|
|
- `ALTER SETTINGS`
|
|
- `ALTER MOVE PARTITION`
|
|
- `ALTER FETCH PARTITION`
|
|
- `ALTER FREEZE PARTITION`
|
|
- `ALTER VIEW`
|
|
- `ALTER VIEW REFRESH`
|
|
- `ALTER VIEW MODIFY QUERY`
|
|
- [CREATE](#grant-create)
|
|
- `CREATE DATABASE`
|
|
- `CREATE TABLE`
|
|
- `CREATE VIEW`
|
|
- `CREATE DICTIONARY`
|
|
- `CREATE TEMPORARY TABLE`
|
|
- [DROP](#grant-drop)
|
|
- `DROP DATABASE`
|
|
- `DROP TABLE`
|
|
- `DROP VIEW`
|
|
- `DROP DICTIONARY`
|
|
- [TRUNCATE](#grant-truncate)
|
|
- [OPTIMIZE](#grant-optimize)
|
|
- [SHOW](#grant-show)
|
|
- `SHOW DATABASES`
|
|
- `SHOW TABLES`
|
|
- `SHOW COLUMNS`
|
|
- `SHOW DICTIONARIES`
|
|
- [KILL QUERY](#grant-kill-query)
|
|
- [ACCESS MANAGEMENT](#grant-access-management)
|
|
- `CREATE USER`
|
|
- `ALTER USER`
|
|
- `DROP USER`
|
|
- `CREATE ROLE`
|
|
- `ALTER ROLE`
|
|
- `DROP ROLE`
|
|
- `CREATE ROW POLICY`
|
|
- `ALTER ROW POLICY`
|
|
- `DROP ROW POLICY`
|
|
- `CREATE QUOTA`
|
|
- `ALTER QUOTA`
|
|
- `DROP QUOTA`
|
|
- `CREATE SETTINGS PROFILE`
|
|
- `ALTER SETTINGS PROFILE`
|
|
- `DROP SETTINGS PROFILE`
|
|
- `SHOW ACCESS`
|
|
- `SHOW_USERS`
|
|
- `SHOW_ROLES`
|
|
- `SHOW_ROW_POLICIES`
|
|
- `SHOW_QUOTAS`
|
|
- `SHOW_SETTINGS_PROFILES`
|
|
- `ROLE ADMIN`
|
|
- [SYSTEM](#grant-system)
|
|
- `SYSTEM SHUTDOWN`
|
|
- `SYSTEM DROP CACHE`
|
|
- `SYSTEM DROP DNS CACHE`
|
|
- `SYSTEM DROP MARK CACHE`
|
|
- `SYSTEM DROP UNCOMPRESSED CACHE`
|
|
- `SYSTEM RELOAD`
|
|
- `SYSTEM RELOAD CONFIG`
|
|
- `SYSTEM RELOAD DICTIONARY`
|
|
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`
|
|
- `SYSTEM MERGES`
|
|
- `SYSTEM TTL MERGES`
|
|
- `SYSTEM FETCHES`
|
|
- `SYSTEM MOVES`
|
|
- `SYSTEM SENDS`
|
|
- `SYSTEM DISTRIBUTED SENDS`
|
|
- `SYSTEM REPLICATED SENDS`
|
|
- `SYSTEM REPLICATION QUEUES`
|
|
- `SYSTEM SYNC REPLICA`
|
|
- `SYSTEM RESTART REPLICA`
|
|
- `SYSTEM FLUSH`
|
|
- `SYSTEM FLUSH DISTRIBUTED`
|
|
- `SYSTEM FLUSH LOGS`
|
|
- [INTROSPECTION](#grant-introspection)
|
|
- `addressToLine`
|
|
- `addressToSymbol`
|
|
- `demangle`
|
|
- [SOURCES](#grant-sources)
|
|
- `FILE`
|
|
- `URL`
|
|
- `REMOTE`
|
|
- `YSQL`
|
|
- `ODBC`
|
|
- `JDBC`
|
|
- `HDFS`
|
|
- `S3`
|
|
- [dictGet](#grant-dictget)
|
|
|
|
Exemples de la façon dont cette hiérarchie est traitée:
|
|
|
|
- Le `ALTER` privilège comprend tous les autres `ALTER*` privilège.
|
|
- `ALTER CONSTRAINT` comprendre `ALTER ADD CONSTRAINT` et `ALTER DROP CONSTRAINT` privilège.
|
|
|
|
Les privilèges sont appliqués à différents niveaux. Connaissant un niveau suggère la syntaxe disponible pour le privilège.
|
|
|
|
Les niveaux (du plus faible au plus élevé):
|
|
|
|
- `COLUMN` — Privilege can be granted for column, table, database, or globally.
|
|
- `TABLE` — Privilege can be granted for table, database, or globally.
|
|
- `VIEW` — Privilege can be granted for view, database, or globally.
|
|
- `DICTIONARY` — Privilege can be granted for dictionary, database, or globally.
|
|
- `DATABASE` — Privilege can be granted for database or globally.
|
|
- `GLOBAL` — Privilege can be granted only globally.
|
|
- `GROUP` — Groups privileges of different levels. When `GROUP`- le privilège de niveau est accordé, seuls les privilèges du groupe sont accordés qui correspondent à la syntaxe utilisée.
|
|
|
|
Exemples de syntaxe:
|
|
|
|
- `GRANT SELECT(x) ON db.table TO user`
|
|
- `GRANT SELECT ON db.* TO user`
|
|
|
|
Exemples de syntaxe refusée:
|
|
|
|
- `GRANT CREATE USER(x) ON db.table TO user`
|
|
- `GRANT CREATE USER ON db.* TO user`
|
|
|
|
Le privilège spécial [ALL](#grant-all) accorde tous les privilèges à un compte d'utilisateur ou à un rôle.
|
|
|
|
Par défaut, un compte d'utilisateur ou un rôle a pas de privilèges.
|
|
|
|
Si un utilisateur ou un rôle ont pas de privilèges qu'il s'affiche comme [NONE](#grant-none) privilège.
|
|
|
|
Certaines requêtes par leur implémentation nécessitent un ensemble de privilèges. Par exemple, pour effectuer la [RENAME](misc.md#misc_operations-rename) requête vous avez besoin des privilèges suivants: `SELECT`, `CREATE TABLE`, `INSERT` et `DROP TABLE`.
|
|
|
|
### SELECT {#grant-select}
|
|
|
|
Permet d'effectuer des [SELECT](select/index.md) requête.
|
|
|
|
Le niveau de privilège: `COLUMN`.
|
|
|
|
**Description**
|
|
|
|
L'utilisateur accordé avec ce privilège peut effectuer `SELECT` requêtes sur une liste spécifiée de colonnes dans la table et la base de données spécifiées. Si l'utilisateur inclut d'autres colonnes, une requête ne renvoie aucune donnée.
|
|
|
|
Considérez le privilège suivant:
|
|
|
|
``` sql
|
|
GRANT SELECT(x,y) ON db.table TO john
|
|
```
|
|
|
|
Ce privilège permet à `john` pour effectuer toute `SELECT` requête qui implique des données du `x` et/ou `y` les colonnes en `db.table`. Exemple, `SELECT x FROM db.table`. `john` ne pouvez pas effectuer de `SELECT z FROM db.table`. Le `SELECT * FROM db.table` aussi n'est pas disponible. En traitant cette requête, ClickHouse ne renvoie aucune donnée, même `x` et `y`. La seule exception est si une table contient uniquement `x` et `y` colonnes, dans ce cas ClickHouse renvoie toutes les données.
|
|
|
|
### INSERT {#grant-insert}
|
|
|
|
Permet d'effectuer des [INSERT](insert-into.md) requête.
|
|
|
|
Le niveau de privilège: `COLUMN`.
|
|
|
|
**Description**
|
|
|
|
L'utilisateur accordé avec ce privilège peut effectuer `INSERT` requêtes sur une liste spécifiée de colonnes dans la table et la base de données spécifiées. Si l'utilisateur inclut d'autres colonnes, une requête n'insère aucune donnée.
|
|
|
|
**Exemple**
|
|
|
|
``` sql
|
|
GRANT INSERT(x,y) ON db.table TO john
|
|
```
|
|
|
|
Le privilège accordé permet `john` pour insérer des données à l' `x` et/ou `y` les colonnes en `db.table`.
|
|
|
|
### ALTER {#grant-alter}
|
|
|
|
Permet d'effectuer des [ALTER](alter.md) requêtes correspondant à la hiérarchie de privilèges suivante:
|
|
|
|
- `ALTER`. Niveau: `COLUMN`.
|
|
- `ALTER TABLE`. Niveau: `GROUP`
|
|
- `ALTER UPDATE`. Niveau: `COLUMN`. Alias: `UPDATE`
|
|
- `ALTER DELETE`. Niveau: `COLUMN`. Alias: `DELETE`
|
|
- `ALTER COLUMN`. Niveau: `GROUP`
|
|
- `ALTER ADD COLUMN`. Niveau: `COLUMN`. Alias: `ADD COLUMN`
|
|
- `ALTER DROP COLUMN`. Niveau: `COLUMN`. Alias: `DROP COLUMN`
|
|
- `ALTER MODIFY COLUMN`. Niveau: `COLUMN`. Alias: `MODIFY COLUMN`
|
|
- `ALTER COMMENT COLUMN`. Niveau: `COLUMN`. Alias: `COMMENT COLUMN`
|
|
- `ALTER CLEAR COLUMN`. Niveau: `COLUMN`. Alias: `CLEAR COLUMN`
|
|
- `ALTER RENAME COLUMN`. Niveau: `COLUMN`. Alias: `RENAME COLUMN`
|
|
- `ALTER INDEX`. Niveau: `GROUP`. Alias: `INDEX`
|
|
- `ALTER ORDER BY`. Niveau: `TABLE`. Alias: `ALTER MODIFY ORDER BY`, `MODIFY ORDER BY`
|
|
- `ALTER ADD INDEX`. Niveau: `TABLE`. Alias: `ADD INDEX`
|
|
- `ALTER DROP INDEX`. Niveau: `TABLE`. Alias: `DROP INDEX`
|
|
- `ALTER MATERIALIZE INDEX`. Niveau: `TABLE`. Alias: `MATERIALIZE INDEX`
|
|
- `ALTER CLEAR INDEX`. Niveau: `TABLE`. Alias: `CLEAR INDEX`
|
|
- `ALTER CONSTRAINT`. Niveau: `GROUP`. Alias: `CONSTRAINT`
|
|
- `ALTER ADD CONSTRAINT`. Niveau: `TABLE`. Alias: `ADD CONSTRAINT`
|
|
- `ALTER DROP CONSTRAINT`. Niveau: `TABLE`. Alias: `DROP CONSTRAINT`
|
|
- `ALTER TTL`. Niveau: `TABLE`. Alias: `ALTER MODIFY TTL`, `MODIFY TTL`
|
|
- `ALTER MATERIALIZE TTL`. Niveau: `TABLE`. Alias: `MATERIALIZE TTL`
|
|
- `ALTER SETTINGS`. Niveau: `TABLE`. Alias: `ALTER SETTING`, `ALTER MODIFY SETTING`, `MODIFY SETTING`
|
|
- `ALTER MOVE PARTITION`. Niveau: `TABLE`. Alias: `ALTER MOVE PART`, `MOVE PARTITION`, `MOVE PART`
|
|
- `ALTER FETCH PARTITION`. Niveau: `TABLE`. Alias: `FETCH PARTITION`
|
|
- `ALTER FREEZE PARTITION`. Niveau: `TABLE`. Alias: `FREEZE PARTITION`
|
|
- `ALTER VIEW` Niveau: `GROUP`
|
|
- `ALTER VIEW REFRESH`. Niveau: `VIEW`. Alias: `ALTER LIVE VIEW REFRESH`, `REFRESH VIEW`
|
|
- `ALTER VIEW MODIFY QUERY`. Niveau: `VIEW`. Alias: `ALTER TABLE MODIFY QUERY`
|
|
|
|
Exemples de la façon dont cette hiérarchie est traitée:
|
|
|
|
- Le `ALTER` privilège comprend tous les autres `ALTER*` privilège.
|
|
- `ALTER CONSTRAINT` comprendre `ALTER ADD CONSTRAINT` et `ALTER DROP CONSTRAINT` privilège.
|
|
|
|
**Note**
|
|
|
|
- Le `MODIFY SETTING` privilège permet de modifier les paramètres du moteur de table. In n'affecte pas les paramètres ou les paramètres de configuration du serveur.
|
|
- Le `ATTACH` opération a besoin de la [CREATE](#grant-create) privilège.
|
|
- Le `DETACH` opération a besoin de la [DROP](#grant-drop) privilège.
|
|
- Pour arrêter la mutation par le [KILL MUTATION](misc.md#kill-mutation) requête, vous devez avoir un privilège pour commencer cette mutation. Par exemple, si vous voulez arrêter l' `ALTER UPDATE` requête, vous avez besoin du `ALTER UPDATE`, `ALTER TABLE`, ou `ALTER` privilège.
|
|
|
|
### CREATE {#grant-create}
|
|
|
|
Permet d'effectuer des [CREATE](create.md) et [ATTACH](misc.md#attach) DDL-requêtes correspondant à la hiérarchie de privilèges suivante:
|
|
|
|
- `CREATE`. Niveau: `GROUP`
|
|
- `CREATE DATABASE`. Niveau: `DATABASE`
|
|
- `CREATE TABLE`. Niveau: `TABLE`
|
|
- `CREATE VIEW`. Niveau: `VIEW`
|
|
- `CREATE DICTIONARY`. Niveau: `DICTIONARY`
|
|
- `CREATE TEMPORARY TABLE`. Niveau: `GLOBAL`
|
|
|
|
**Note**
|
|
|
|
- Pour supprimer la table créée, l'utilisateur doit [DROP](#grant-drop).
|
|
|
|
### DROP {#grant-drop}
|
|
|
|
Permet d'effectuer des [DROP](misc.md#drop) et [DETACH](misc.md#detach) requêtes correspondant à la hiérarchie de privilèges suivante:
|
|
|
|
- `DROP`. Niveau:
|
|
- `DROP DATABASE`. Niveau: `DATABASE`
|
|
- `DROP TABLE`. Niveau: `TABLE`
|
|
- `DROP VIEW`. Niveau: `VIEW`
|
|
- `DROP DICTIONARY`. Niveau: `DICTIONARY`
|
|
|
|
### TRUNCATE {#grant-truncate}
|
|
|
|
Permet d'effectuer des [TRUNCATE](misc.md#truncate-statement) requête.
|
|
|
|
Le niveau de privilège: `TABLE`.
|
|
|
|
### OPTIMIZE {#grant-optimize}
|
|
|
|
Permet d'effectuer les [OPTIMIZE TABLE](misc.md#misc_operations-optimize) requête.
|
|
|
|
Le niveau de privilège: `TABLE`.
|
|
|
|
### SHOW {#grant-show}
|
|
|
|
Permet d'effectuer des `SHOW`, `DESCRIBE`, `USE`, et `EXISTS` requêtes, correspondant à la hiérarchie suivante des privilèges:
|
|
|
|
- `SHOW`. Niveau: `GROUP`
|
|
- `SHOW DATABASES`. Niveau: `DATABASE`. Permet d'exécuter des `SHOW DATABASES`, `SHOW CREATE DATABASE`, `USE <database>` requête.
|
|
- `SHOW TABLES`. Niveau: `TABLE`. Permet d'exécuter des `SHOW TABLES`, `EXISTS <table>`, `CHECK <table>` requête.
|
|
- `SHOW COLUMNS`. Niveau: `COLUMN`. Permet d'exécuter des `SHOW CREATE TABLE`, `DESCRIBE` requête.
|
|
- `SHOW DICTIONARIES`. Niveau: `DICTIONARY`. Permet d'exécuter des `SHOW DICTIONARIES`, `SHOW CREATE DICTIONARY`, `EXISTS <dictionary>` requête.
|
|
|
|
**Note**
|
|
|
|
Un utilisateur a le `SHOW` privilège s'il a un autre privilège concernant la table, le dictionnaire ou la base de données spécifiés.
|
|
|
|
### KILL QUERY {#grant-kill-query}
|
|
|
|
Permet d'effectuer les [KILL](misc.md#kill-query-statement) requêtes correspondant à la hiérarchie de privilèges suivante:
|
|
|
|
Le niveau de privilège: `GLOBAL`.
|
|
|
|
**Note**
|
|
|
|
`KILL QUERY` privilège permet à un utilisateur de tuer les requêtes des autres utilisateurs.
|
|
|
|
### ACCESS MANAGEMENT {#grant-access-management}
|
|
|
|
Permet à un utilisateur d'effectuer des requêtes qui gèrent les utilisateurs, les rôles et les stratégies de ligne.
|
|
|
|
- `ACCESS MANAGEMENT`. Niveau: `GROUP`
|
|
- `CREATE USER`. Niveau: `GLOBAL`
|
|
- `ALTER USER`. Niveau: `GLOBAL`
|
|
- `DROP USER`. Niveau: `GLOBAL`
|
|
- `CREATE ROLE`. Niveau: `GLOBAL`
|
|
- `ALTER ROLE`. Niveau: `GLOBAL`
|
|
- `DROP ROLE`. Niveau: `GLOBAL`
|
|
- `ROLE ADMIN`. Niveau: `GLOBAL`
|
|
- `CREATE ROW POLICY`. Niveau: `GLOBAL`. Alias: `CREATE POLICY`
|
|
- `ALTER ROW POLICY`. Niveau: `GLOBAL`. Alias: `ALTER POLICY`
|
|
- `DROP ROW POLICY`. Niveau: `GLOBAL`. Alias: `DROP POLICY`
|
|
- `CREATE QUOTA`. Niveau: `GLOBAL`
|
|
- `ALTER QUOTA`. Niveau: `GLOBAL`
|
|
- `DROP QUOTA`. Niveau: `GLOBAL`
|
|
- `CREATE SETTINGS PROFILE`. Niveau: `GLOBAL`. Alias: `CREATE PROFILE`
|
|
- `ALTER SETTINGS PROFILE`. Niveau: `GLOBAL`. Alias: `ALTER PROFILE`
|
|
- `DROP SETTINGS PROFILE`. Niveau: `GLOBAL`. Alias: `DROP PROFILE`
|
|
- `SHOW ACCESS`. Niveau: `GROUP`
|
|
- `SHOW_USERS`. Niveau: `GLOBAL`. Alias: `SHOW CREATE USER`
|
|
- `SHOW_ROLES`. Niveau: `GLOBAL`. Alias: `SHOW CREATE ROLE`
|
|
- `SHOW_ROW_POLICIES`. Niveau: `GLOBAL`. Alias: `SHOW POLICIES`, `SHOW CREATE ROW POLICY`, `SHOW CREATE POLICY`
|
|
- `SHOW_QUOTAS`. Niveau: `GLOBAL`. Alias: `SHOW CREATE QUOTA`
|
|
- `SHOW_SETTINGS_PROFILES`. Niveau: `GLOBAL`. Alias: `SHOW PROFILES`, `SHOW CREATE SETTINGS PROFILE`, `SHOW CREATE PROFILE`
|
|
|
|
Le `ROLE ADMIN` le privilège permet à un utilisateur d'accorder et de révoquer tous les rôles, y compris ceux qui ne lui sont pas accordés avec l'option admin.
|
|
|
|
### SYSTEM {#grant-system}
|
|
|
|
Permet à un utilisateur d'effectuer la [SYSTEM](system.md) requêtes correspondant à la hiérarchie de privilèges suivante.
|
|
|
|
- `SYSTEM`. Niveau: `GROUP`
|
|
- `SYSTEM SHUTDOWN`. Niveau: `GLOBAL`. Alias: `SYSTEM KILL`, `SHUTDOWN`
|
|
- `SYSTEM DROP CACHE`. Alias: `DROP CACHE`
|
|
- `SYSTEM DROP DNS CACHE`. Niveau: `GLOBAL`. Alias: `SYSTEM DROP DNS`, `DROP DNS CACHE`, `DROP DNS`
|
|
- `SYSTEM DROP MARK CACHE`. Niveau: `GLOBAL`. Alias: `SYSTEM DROP MARK`, `DROP MARK CACHE`, `DROP MARKS`
|
|
- `SYSTEM DROP UNCOMPRESSED CACHE`. Niveau: `GLOBAL`. Alias: `SYSTEM DROP UNCOMPRESSED`, `DROP UNCOMPRESSED CACHE`, `DROP UNCOMPRESSED`
|
|
- `SYSTEM RELOAD`. Niveau: `GROUP`
|
|
- `SYSTEM RELOAD CONFIG`. Niveau: `GLOBAL`. Alias: `RELOAD CONFIG`
|
|
- `SYSTEM RELOAD DICTIONARY`. Niveau: `GLOBAL`. Alias: `SYSTEM RELOAD DICTIONARIES`, `RELOAD DICTIONARY`, `RELOAD DICTIONARIES`
|
|
- `SYSTEM RELOAD EMBEDDED DICTIONARIES`. Niveau: `GLOBAL`. Alias: R`ELOAD EMBEDDED DICTIONARIES`
|
|
- `SYSTEM MERGES`. Niveau: `TABLE`. Alias: `SYSTEM STOP MERGES`, `SYSTEM START MERGES`, `STOP MERGES`, `START MERGES`
|
|
- `SYSTEM TTL MERGES`. Niveau: `TABLE`. Alias: `SYSTEM STOP TTL MERGES`, `SYSTEM START TTL MERGES`, `STOP TTL MERGES`, `START TTL MERGES`
|
|
- `SYSTEM FETCHES`. Niveau: `TABLE`. Alias: `SYSTEM STOP FETCHES`, `SYSTEM START FETCHES`, `STOP FETCHES`, `START FETCHES`
|
|
- `SYSTEM MOVES`. Niveau: `TABLE`. Alias: `SYSTEM STOP MOVES`, `SYSTEM START MOVES`, `STOP MOVES`, `START MOVES`
|
|
- `SYSTEM SENDS`. Niveau: `GROUP`. Alias: `SYSTEM STOP SENDS`, `SYSTEM START SENDS`, `STOP SENDS`, `START SENDS`
|
|
- `SYSTEM DISTRIBUTED SENDS`. Niveau: `TABLE`. Alias: `SYSTEM STOP DISTRIBUTED SENDS`, `SYSTEM START DISTRIBUTED SENDS`, `STOP DISTRIBUTED SENDS`, `START DISTRIBUTED SENDS`
|
|
- `SYSTEM REPLICATED SENDS`. Niveau: `TABLE`. Alias: `SYSTEM STOP REPLICATED SENDS`, `SYSTEM START REPLICATED SENDS`, `STOP REPLICATED SENDS`, `START REPLICATED SENDS`
|
|
- `SYSTEM REPLICATION QUEUES`. Niveau: `TABLE`. Alias: `SYSTEM STOP REPLICATION QUEUES`, `SYSTEM START REPLICATION QUEUES`, `STOP REPLICATION QUEUES`, `START REPLICATION QUEUES`
|
|
- `SYSTEM SYNC REPLICA`. Niveau: `TABLE`. Alias: `SYNC REPLICA`
|
|
- `SYSTEM RESTART REPLICA`. Niveau: `TABLE`. Alias: `RESTART REPLICA`
|
|
- `SYSTEM FLUSH`. Niveau: `GROUP`
|
|
- `SYSTEM FLUSH DISTRIBUTED`. Niveau: `TABLE`. Alias: `FLUSH DISTRIBUTED`
|
|
- `SYSTEM FLUSH LOGS`. Niveau: `GLOBAL`. Alias: `FLUSH LOGS`
|
|
|
|
Le `SYSTEM RELOAD EMBEDDED DICTIONARIES` privilège implicitement accordé par le `SYSTEM RELOAD DICTIONARY ON *.*` privilège.
|
|
|
|
### INTROSPECTION {#grant-introspection}
|
|
|
|
Permet l'utilisation de [introspection](../../operations/optimizing-performance/sampling-query-profiler.md) fonction.
|
|
|
|
- `INTROSPECTION`. Niveau: `GROUP`. Alias: `INTROSPECTION FUNCTIONS`
|
|
- `addressToLine`. Niveau: `GLOBAL`
|
|
- `addressToSymbol`. Niveau: `GLOBAL`
|
|
- `demangle`. Niveau: `GLOBAL`
|
|
|
|
### SOURCES {#grant-sources}
|
|
|
|
Permet d'utiliser des sources de données externes. S'applique à [moteurs de table](../../engines/table-engines/index.md) et [les fonctions de table](../table-functions/index.md#table-functions).
|
|
|
|
- `SOURCES`. Niveau: `GROUP`
|
|
- `FILE`. Niveau: `GLOBAL`
|
|
- `URL`. Niveau: `GLOBAL`
|
|
- `REMOTE`. Niveau: `GLOBAL`
|
|
- `YSQL`. Niveau: `GLOBAL`
|
|
- `ODBC`. Niveau: `GLOBAL`
|
|
- `JDBC`. Niveau: `GLOBAL`
|
|
- `HDFS`. Niveau: `GLOBAL`
|
|
- `S3`. Niveau: `GLOBAL`
|
|
|
|
Le `SOURCES` privilège permet l'utilisation de toutes les sources. Vous pouvez également accorder un privilège pour chaque source individuellement. Pour utiliser les sources, vous avez besoin de privilèges supplémentaires.
|
|
|
|
Exemple:
|
|
|
|
- Pour créer une table avec [Moteur de table MySQL](../../engines/table-engines/integrations/mysql.md), vous avez besoin `CREATE TABLE (ON db.table_name)` et `MYSQL` privilège.
|
|
- L'utilisation de la [fonction de table mysql](../table-functions/mysql.md), vous avez besoin `CREATE TEMPORARY TABLE` et `MYSQL` privilège.
|
|
|
|
### dictGet {#grant-dictget}
|
|
|
|
- `dictGet`. Alias: `dictHas`, `dictGetHierarchy`, `dictIsIn`
|
|
|
|
Permet à un utilisateur d'exécuter [dictGet](../functions/ext-dict-functions.md#dictget), [dictHas](../functions/ext-dict-functions.md#dicthas), [dictGetHierarchy](../functions/ext-dict-functions.md#dictgethierarchy), [dictisine](../functions/ext-dict-functions.md#dictisin) fonction.
|
|
|
|
Niveau de privilège: `DICTIONARY`.
|
|
|
|
**Exemple**
|
|
|
|
- `GRANT dictGet ON mydb.mydictionary TO john`
|
|
- `GRANT dictGet ON mydictionary TO john`
|
|
|
|
### ALL {#grant-all}
|
|
|
|
Les subventions de tous les privilèges sur l'entité réglementée à un compte d'utilisateur ou un rôle.
|
|
|
|
### NONE {#grant-none}
|
|
|
|
N'accorde pas de privilèges.
|
|
|
|
### ADMIN OPTION {#admin-option-privilege}
|
|
|
|
Le `ADMIN OPTION` le privilège permet à un utilisateur d'accorder son rôle à un autre utilisateur.
|
|
|
|
[Article Original](https://clickhouse.tech/docs/en/query_language/grant/) <!--hide-->
|