ユーザーの認証と認可
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB Cluster には、ユーザーを認証および認可するメカニズムがあります。
このガイドでは、ScalarDB SQL で認証と認可を使用する方法について説明します。
プリミティブインターフェースを使用して認証と認可を行うこともできます。詳細については、ClusterClientTransactionAdminを参照してください。これは AuthAdmin を実装しています。
概要
認証と認可を使用することで、ユーザーを作成し、その権限を付与または取り消すことができます。CREATE USER コマンドを使用してユーザーを作成し、GRANT コマンドまたは REVOKE コマンドを使用して、それぞれテーブルまたは名前空間に対する権限を付与または取り消すことができます。このようなデータ制御言語 (DCL) コマンドの詳細については、DCL を参照してください。
ユーザーは、必要な権限を持ってい る場合、ユーザー名とパスワードを使用して ScalarDB Cluster にログインし、SQL ステートメントを実行できます。
認証と認可では、次の2種類のユーザーがサポートされます。
- スーパーユーザー: このタイプのユーザーにはすべての権限があります。スーパーユーザーのみが他のユーザーや名前空間を作成または削除できます。
- 通常のユーザー: このタイプのユーザーには最初は権限がないため、スーパーユーザーまたは
GRANT権限を持つ別のユーザーによって権限を付与する必要があります。
認証と認可を使用する場合、次の権限が利用できます。
SELECTINSERTUPDATEDELETECREATEDROPTRUNCATEALTERGRANT
各タイプの操作に必要な権限
次の表は、各タイプの操作に必要な権限を示しています:
DDL
| コマンド | スーパーユーザー権限が必要か | 必要な権限 |
|---|---|---|
CREATE NAMESPACE | true | |
DROP NAMESPACE | true | |
CREATE TABLE | CREATE | |
DROP TABLE | DROP | |
CREATE INDEX | CREATE | |
DROP INDEX | DROP | |
TRUNCATE TABLE | TRUNCATE | |
ALTER TABLE | ALTER | |
CREATE COORDINATOR TABLES | true | |
DROP COORDINATOR TABLES | true | |
TRUNCATE COORDINATOR TABLES | true |
DML
| コマンド | スーパーユーザー権限が必要か | 必要な権限 |
|---|---|---|
SELECT | SELECT | |
INSERT | SELECT、INSERT、UPDATE | |
UPSERT | SELECT、INSERT、UPDATE | |
UPDATE | SELECT、INSERT、UPDATE | |
DELETE | SELECT、DELETE |
ScalarDB では最初、データを書き込むために UPSERT に対応する Put 操作のみが提供されていました。その結果、内部的には一つの書き込み権限しか存在しません。そのため、INSERT、UPDATE、UPSERT に必要な権限は同じであり、すべて SELECT 権限が必要です。将来的には、ScalarDB はより細かい書き込み権限の提供を予定しています。
DCL
| コマンド | スーパーユーザー権限が必要か | 必要な権限 |
|---|---|---|
CREATE USER | true | |
ALTER USER | true (ユーザーは自分のパスワードを変更できます。) | |
DROP USER | true | |
GRANT | GRANT (ユーザーは自分が持っている権限のみを付与できます。) | |
REVOKE | GRANT (ユーザーは自分が持っている権限のみを取り消すことができます。) |