メインコンテンツまでスキップ
メインコンテンツまでスキップ

ALTER USER

ClickHouse のユーザーアカウントを変更します。

構文:

ALTER USER を使用するには、ALTER USER 権限が必要です。

GRANTEES 句

このユーザーから特定のユーザーまたはロールに 特権 を付与できることを指定します。このユーザーがすべての必要なアクセスを GRANT OPTION によって付与されていることが条件です。GRANTEES 句のオプション:

  • user — このユーザーが特権を付与できるユーザーを指定します。
  • role — このユーザーが特権を付与できるロールを指定します。
  • ANY — このユーザーは誰にでも特権を付与できます。これはデフォルトの設定です。
  • NONE — このユーザーは特権を付与できません。

EXCEPT 式を使用して、任意のユーザーやロールを除外できます。たとえば、ALTER USER user1 GRANTEES ANY EXCEPT user2 のように指定します。これは、user1GRANT OPTION によって特権を付与されている場合、それを user2 を除く誰にでも付与できることを意味します。

割り当てられたロールをデフォルトに設定します:

ロールが以前にユーザーに割り当てられていない場合、ClickHouse は例外をスローします。

割り当てられたすべてのロールをデフォルトに設定します:

将来的にロールがユーザーに割り当てられた場合、それは自動的にデフォルトになります。

role1role2 を除いて、割り当てられたすべてのロールをデフォルトに設定します:

john アカウントを持つユーザーが jack アカウントを持つユーザーに自分の特権を付与できるようにします:

既存の認証方法を保持しながら、新しい認証方法をユーザーに追加します:

注:

  1. 古いバージョンの ClickHouse は複数の認証方法の構文をサポートしていないかもしれません。そのため、ClickHouse サーバーがそのようなユーザーを含んでいて、サポートされていないバージョンにダウングレードされると、そのようなユーザーは無効になり、一部のユーザー関連の操作が壊れる可能性があります。ダウングレードをスムーズに行うには、ダウングレード前にすべてのユーザーが単一の認証方法を含むように設定する必要があります。あるいは、適切な手順を経ずにサーバーがダウングレードされた場合、故障したユーザーは削除されるべきです。
  2. no_password は他の認証方法と共存できないため、セキュリティ上の理由から、no_password 認証方法を ADD することはできません。以下のクエリはエラーをスローします:

ユーザーの認証方法を削除して no_password に依存したい場合は、以下の置き換え形式で指定する必要があります。

認証方法をリセットし、クエリで指定されたものを追加します(ADD キーワードなしの先頭の IDENTIFIED の効果):

認証方法をリセットし、最近追加されたものを保持します:

VALID UNTIL 句

認証方法の有効期限日およびオプションで時刻を指定できます。文字列をパラメータとして受け入れます。日時には 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'