> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Paramètres des permissions pour les requêtes.

# Permissions pour les requêtes

Les requêtes dans ClickHouse peuvent être réparties en plusieurs types :

1. Requêtes de lecture de données : `SELECT`, `SHOW`, `DESCRIBE`, `EXISTS`.
2. Requêtes d'écriture de données : `INSERT`, `OPTIMIZE`.
3. Requêtes de modification des paramètres : `SET`, `USE`.
4. Requêtes [DDL](https://en.wikipedia.org/wiki/Data_definition_language) : `CREATE`, `ALTER`, `RENAME`, `ATTACH`, `DETACH`, `DROP` `TRUNCATE`.
5. `KILL QUERY`.

Les paramètres suivants définissent les permissions utilisateur selon le type de requête :

<div id="readonly">
  ## readonly
</div>

Restreint les permissions pour les requêtes de lecture de données, d'écriture de données et de modification des paramètres.

Lorsqu'il est défini sur 1, autorise :

* Tous les types de requêtes de lecture (comme SELECT et les requêtes équivalentes).
* Les requêtes qui modifient uniquement le contexte de session (comme USE).

Lorsqu'il est défini sur 2, autorise ce qui précède, ainsi que :

* SET et CREATE TEMPORARY TABLE

<Tip>
  Les requêtes comme EXISTS, DESCRIBE, EXPLAIN, SHOW PROCESSLIST, etc. sont équivalentes à SELECT, car elles ne font qu'un SELECT sur des tables système.
</Tip>

Valeurs possibles :

* 0 — Les requêtes de lecture, d'écriture et de modification des paramètres sont autorisées.
* 1 — Seules les requêtes de lecture de données sont autorisées.
* 2 — Les requêtes de lecture de données et de modification des paramètres sont autorisées.

Valeur par défaut : 0

<Note>
  Après avoir défini `readonly = 1`, l'utilisateur ne peut pas modifier les paramètres `readonly` et `allow_ddl` dans la session en cours.

  Lors de l'utilisation de la méthode `GET` dans l'[interface HTTP](/docs/fr/concepts/features/interfaces/http), `readonly = 1` est défini automatiquement. Pour modifier des données, utilisez la méthode `POST`.

  Définir `readonly = 1` empêche l'utilisateur de modifier les paramètres. Il est possible d'empêcher l'utilisateur de ne modifier que certains paramètres spécifiques. Il est également possible d'autoriser la modification de certains paramètres spécifiques uniquement malgré les restrictions de `readonly = 1`. Pour plus de détails, voir [contraintes sur les paramètres](/docs/fr/concepts/features/configuration/settings/constraints-on-settings).
</Note>

<div id="allow_ddl">
  ## allow\_ddl
</div>

Autorise ou interdit les requêtes [DDL](https://en.wikipedia.org/wiki/Data_definition_language).

Valeurs possibles :

* 0 — les requêtes DDL ne sont pas autorisées.
* 1 — les requêtes DDL sont autorisées.

Valeur par défaut : 1

<Note>
  Vous ne pouvez pas exécuter `SET allow_ddl = 1` si `allow_ddl = 0` pour la session en cours.
</Note>

<Info>
  **KILL QUERY**

  `KILL QUERY` peut être exécuté avec n’importe quelle combinaison des paramètres readonly et allow\_ddl.
</Info>
