ALTER USER
Changes ClickHouse user accounts.
Syntax:
ALTER USER
を使用するには、ALTER USER特権が必要です。
GRANTEES Clause
このユーザーからの特権を受け取ることができるユーザーまたはロールを指定します。このユーザーがGRANT OPTIONによって必要なアクセス権をすべて持っている場合に限ります。GRANTEES
句のオプション:
user
— このユーザーが特権を付与できるユーザーを指定します。role
— このユーザーが特権を付与できるロールを指定します。ANY
— このユーザーは誰にでも特権を付与できます。これはデフォルトの設定です。NONE
— このユーザーは特権を付与できません。
EXCEPT
式を使用して、任意のユーザーまたはロールを除外できます。たとえば、ALTER USER user1 GRANTEES ANY EXCEPT user2
。これは、user1
がGRANT OPTION
で付与された特権を持つ場合、user2
を除いて誰にでもその特権を付与できることを意味します。
Examples
割り当てられたロールをデフォルトとして設定:
ロールがユーザーに事前に割り当てられていない場合、ClickHouseは例外をスローします。
すべての割り当てられたロールをデフォルトとして設定:
将来的にロールがユーザーに割り当てられた場合、それは自動的にデフォルトになります。
role1
およびrole2
を除いてすべての割り当てられたロールをデフォルトに設定:
john
アカウントを持つユーザーがjack
アカウントを持つユーザーに特権を付与できるようにします:
既存の認証方法を保持しながらユーザーに新しい認証方法を追加:
注意:
- 古いバージョンのClickHouseでは複数の認証方法の構文がサポートされていない場合があります。そのため、そのようなユーザーが含まれるClickHouseサーバーが、これをサポートしないバージョンにダウングレードされると、そのユーザーは使用できなくなり、一部のユーザー関連の操作が壊れます。適切にダウングレードするためには、ダウングレード前にすべてのユーザーが単一の認証方法を持つように設定する必要があります。あるいは、適切な手順なしにサーバーがダウングレードされた場合、不良ユーザーを削除する必要があります。
no_password
は、セキュリティ上の理由から他の認証方法と共存できません。そのため、no_password
認証方法をADD
することはできません。以下のクエリはエラーをスローします:
ユーザーの認証方法を削除し、no_password
に依存する場合は、以下の置換形式で指定する必要があります。
認証方法をリセットし、クエリで指定されたものを追加します(ADDキーワードなしのIDENTIFIEDの効果):
認証方法をリセットし、最も最近追加されたものを保持します:
VALID UNTIL Clause
認証方法の有効期限を指定でき、その日付と時間をオプションで設定できます。パラメーターとして文字列を受け付けます。日付および時刻にはYYYY-MM-DD [hh:mm:ss] [timezone]
形式を使用することをお勧めします。デフォルトでは、このパラメーターは'infinity'
に等しいです。
VALID UNTIL
句は、認証方法と一緒にのみ指定できますが、クエリで認証方法が指定されていない場合を除きます。このシナリオでは、VALID UNTIL
句はすべての既存の認証方法に適用されます。
例:
ALTER USER name1 VALID UNTIL '2025-01-01'
ALTER USER name1 VALID UNTIL '2025-01-01 12:00:00 UTC'
ALTER USER name1 VALID UNTIL 'infinity'
ALTER USER name1 IDENTIFIED WITH plaintext_password BY 'no_expiration', bcrypt_password BY 'expiration_set' VALID UNTIL '2025-01-01'