2020-08-25 15:38:36 +00:00
---
2022-04-09 13:29:05 +00:00
sidebar_position: 45
sidebar_label: USER
2020-08-25 15:38:36 +00:00
---
# ALTER USER {#alter-user-statement}
2021-01-26 22:40:14 +00:00
Изменяет аккаунты пользователей ClickHouse.
2020-08-25 15:38:36 +00:00
2021-01-26 22:40:14 +00:00
Синтаксис:
2020-08-25 15:38:36 +00:00
``` sql
2021-07-29 15:20:55 +00:00
ALTER USER [IF EXISTS] name1 [ON CLUSTER cluster_name1] [RENAME TO new_name1]
2021-01-26 22:40:14 +00:00
[, name2 [ON CLUSTER cluster_name2] [RENAME TO new_name2] ...]
2021-03-29 14:57:27 +00:00
[NOT IDENTIFIED | IDENTIFIED {[WITH {no_password | plaintext_password | sha256_password | sha256_hash | double_sha1_password | double_sha1_hash}] BY {'password' | 'hash'}} | {WITH ldap SERVER 'server_name'} | {WITH kerberos [REALM 'realm']}]
[[ADD | DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
2020-08-25 15:38:36 +00:00
[DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ]
2021-05-13 20:05:11 +00:00
[GRANTEES {user | role | ANY | NONE} [,...] [EXCEPT {user | role} [,...]]]
2021-03-29 14:57:27 +00:00
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY | WRITABLE] | PROFILE 'profile_name'] [,...]
2021-07-29 15:27:50 +00:00
```
2020-08-25 15:38:36 +00:00
Для выполнения `ALTER USER` необходима привилегия [ALTER USER ](../grant.md#grant-access-management ).
2021-05-10 19:51:26 +00:00
## Секция GRANTEES {#grantees}
2021-05-13 21:46:57 +00:00
Определяет пользователей или роли, которым разрешено получать [привилегии ](../../../sql-reference/statements/grant.md#grant-privileges ) от указанного пользователя при условии, что этому пользователю также предоставлен весь необходимый доступ с использованием [GRANT OPTION ](../../../sql-reference/statements/grant.md#grant-privigele-syntax ). Параметры секции `GRANTEES` :
2021-05-10 19:51:26 +00:00
2021-05-11 13:32:58 +00:00
- `user` — пользователь, которому разрешено получать привилегии от указанного пользователя.
- `role` — роль, которой разрешено получать привилегии от указанного пользователя.
2021-05-10 19:51:26 +00:00
- `ANY` — любому пользователю или любой роли разрешено получать привилегии от указанного пользователя. Используется по умолчанию.
- `NONE` — никому не разрешено получать привилегии от указанного пользователя.
2021-05-13 21:46:57 +00:00
Вы можете исключить любого пользователя или роль, используя выражение `EXCEPT` . Например, `ALTER USER user1 GRANTEES ANY EXCEPT user2` . Это означает, что если `user1` имеет привилегии, предоставленные с использованием `GRANT OPTION` , он сможет предоставить их любому, кроме `user2` .
2021-05-10 19:51:26 +00:00
2020-08-25 15:38:36 +00:00
## Примеры {#alter-user-examples}
Установить ролями по умолчанию роли, назначенные пользователю:
``` sql
2021-05-10 19:51:26 +00:00
ALTER USER user DEFAULT ROLE role1, role2;
2020-08-25 15:38:36 +00:00
```
Если роли не были назначены пользователю, ClickHouse выбрасывает исключение.
Установить ролями по умолчанию все роли, назначенные пользователю:
``` sql
2021-05-10 19:51:26 +00:00
ALTER USER user DEFAULT ROLE ALL;
2020-08-25 15:38:36 +00:00
```
Если роль будет впоследствии назначена пользователю, она автоматически станет ролью по умолчанию.
Установить ролями по умолчанию все назначенные пользователю роли кроме `role1` и `role2` :
``` sql
2021-05-10 19:51:26 +00:00
ALTER USER user DEFAULT ROLE ALL EXCEPT role1, role2;
2020-08-25 15:38:36 +00:00
```
2021-05-10 19:51:26 +00:00
Разрешить пользователю с аккаунтом `john` предоставить свои привилегии пользователю с аккаунтом `jack` :
``` sql
ALTER USER john GRANTEES jack;
```