ユーザーの認証と認可
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB Cluster には、ユーザーを認証および認可するメカニズムがあります。
このガイドでは、ScalarDB SQL で 認証と認可を使用する方法について説明します。
プリミティブインターフェースを使用して認証と認可を行うこともできます。詳細については、ClusterClientTransactionAdminを参照してください。これは AuthAdmin を実装しています。
概要
認証と認可を使用することで、ユーザーを作成し、その権限を付与または取り消すことができます。CREATE USER コマンドを使用してユーザーを作成し、GRANT コマンドまたは REVOKE コマンドを使用して、それぞれテーブルまたは名前空間に対する権限を付与または取り消すことができます。このようなデータ制御言語 (DCL) コマンドの詳細については、DCL を参照してください。
ユーザーは、必要な権限を持っている場合、ユーザー名とパスワードを使用して ScalarDB Cluster にログインし、SQL ステートメントを実行できます。
認証と認可では、次の2種類のユーザーがサポートされます。
- スーパーユーザー: このタイプのユーザーにはすべての権限があります。スーパーユーザーのみが他のユーザーや名前空間を作成または削除できます。
- 通常のユーザー: このタイプのユーザーには最初は権限がないため、スーパーユーザーまたは
GRANT権限を持つ別のユーザーによって権限を付与する必要があります。
認証と認可を使用する場合、次の権限が利用できます。
SELECTINSERTUPDATEDELETECREATEDROPTRUNCATEALTERGRANT
権限の詳細については、各タイプの操作に必要な権限を参照してください。
設定
このセクションでは、認証と認可に使用できる設定について説明します。
ScalarDB Cluster ノードの設定
認証と認可を有効にするには、scalar.db.cluster.auth.enabled を true に設定する必要があります。
| 名前 | 説明 | デフォルト |
|---|---|---|
scalar.db.cluster.auth.enabled | 認証と認可が有効かどうか。 | false |
以下を設定することもできます。
| 名前 | 説明 | デフォルト |
|---|---|---|
scalar.db.cluster.auth.cache_expiration_time_millis | 認証および認可情報のキャッシュ有効期限(ミリ秒単位)。 | 60000 (1分) |
scalar.db.cluster.auth.auth_token_expiration_time_minutes | 認証および認可トークンの有効期限(分単位)。 | 1440 (1日) |
scalar.db.cluster.auth.auth_token_gc_thread_interval_minutes | 認証および認可トークンのガベージコレクション (GC) スレッド間隔 (分単位)。 | 360(6時間) |
scalar.db.cluster.auth.pepper | ハッシュ化の前にパスワードに追加されるシークレットの値。指定しない場合、パスワードはペッパーなしでハッシュ化されます。 |
認証と認可を有効にする場合は、認証と認可によって内部的にパーティション間スキャンが実行されるため、システム名前空間 (デフォルトでは scalardb) の scalar.db.cross_partition_scan.enabled を true に設定する必要もあります。
ScalarDB Cluster Java Client SDK 設定
クライアント側で認証と認可を有効にするには、scalar.db.cluster.auth.enabled を true に設定する必要があります。
| 名前 | 説明 | デフォルト |
|---|---|---|
scalar.db.cluster.auth.enabled | 認証と認可が有効かどうか。 | false |
ScalarDB Cluster SQL クライアント設定 セクションの設定に加えて、クライアントのユーザー名とパスワードを指定するために scalar.db.sql.cluster_mode.username と scalar.db.sql.cluster_mode.password も設定する必要があります。
| 名前 | 説明 | デフォルト |
|---|---|---|
scalar.db.sql.cluster_mode.username | クライアントのユーザー名。 | |
scalar.db.sql.cluster_mode.password | クライアントのパスワード。 |
初期ユーザー
認証と認可を有効にすると、初期ユーザー admin が作成され、そのユーザーの初期パスワードは admin になります。このユーザーはスーパーユーザーであり、すべての権限を持ちます。このユーザーでログインし、必要に応じて他のユーザーを作成できます。
セキュリティ上の理由から、特に実稼働環境にデプロイする前に、初期ユーザーのパスワードを必ず変更してください。