ネームスペースへの認可アクセス権の付与

ネームスペースおよび表にアクセスするためのユーザーまたはロールの権限を管理できます。次に、開発者やその他のユーザーに指定された適切な権限を示します。

表3-1 ネームスペースの権限

権限 説明

CREATE_ANY_NAMESPACE

DROP_ANY_NAMESPACE

ネームスペースを作成または削除する権限をユーザーまたはロールに付与します。
GRANT CREATE_ANY_NAMESPACE TO <User|Role>;
GRANT DROP_ANY_NAMESPACE TO <User|Role>;

CREATE_TABLE_IN_NAMESPACE

DROP_TABLE_IN_NAMESPACE

EVOLVE_TABLE_IN_NAMESPACE

特定のネームスペースの表を作成、削除または展開するための権限をユーザーまたはロールに付与します。表を展開して、表定義を更新したり、フィールドを追加または削除したり、デフォルト値などのフィールド・プロパティを変更できます。特定の種類の列(IDENTITY列など)を追加して、値を自動的に増やすこともできます。すでにストアに存在する表のみが表のエボリューションの候補となります。詳細は、表の変更を参照してください。
GRANT CREATE_TABLE_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>; 
GRANT DROP_TABLE_IN_NAMESPACE ON NAMESPACE  namespace_name TO <User|Role>;
GRANT EVOLVE_TABLE_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>user_role;

CREATE_INDEX_IN_NAMESPACE

DROP_INDEX_IN_NAMESPACE

特定のネームスペースで索引を作成または削除する権限をユーザーまたはロールに付与します。
GRANT CREATE_INDEX_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>; 
GRANT DROP_INDEX_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>;

READ_IN_NAMESPACE

INSERT_IN_NAMESPACE

DELETE_IN_NAMESPACE

特定のネームスペースで項目を読取り、挿入または削除するロールに権限を付与します。
GRANT READ_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>; 
GRANT INSERT_IN_NAMESPACE ON NAMESPACE  namespace_name TO <User|Role>;
GRANT DELETE_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>;

MODIFY_IN_NAMESPACE

特定のネームスペースに対するすべてのDDL権限をユーザーまたはロールに対して付与または取り消すためのヘルパー・ラベル。
GRANT MODIFY_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>; 
REVOKE MODIFY_IN_NAMESPACE ON NAMESPACE namespace_name TO <User|Role>;

ネームスペースに対する権限の付与

ネームスペースに対する権限をロールまたはユーザーに付与できます。ネームスペースに対する権限を付与するための構文を次に示します。
GRANT {Namespace-scoped privileges} ON NAMESPACE namespace_name TO <User|Role>
Namespace-scoped privileges ::= namespace_privilege [, namespace_privilege]

説明

  • namespace_privilege

    ユーザーまたはロールに付与できるネームスペース権限。適用可能な権限の詳細は、「ネームスペースの権限」表の「権限」列を参照してください。

  • namespace_name

    ユーザーがアクセスするネームスペース。

  • <User|Role>

    KVStoreユーザーの名前またはユーザーのロール。

たとえば、ネームスペース内のすべての表に対する読取りアクセス権をユーザーに付与できます。
Example:

GRANT READ_IN_NAMESPACE ON NAMESPACE ns1 TO Kate;

ここでは、ns1はネームスペースであり、Kateはユーザーです。

ノート:

ラベルMODIFY_IN_NAMESPACEは、特定のネームスペースに対するすべてのDDL権限をユーザーまたはロールに対して付与または取り消すためのヘルパーとして使用できます。

ネームスペースに対する権限の取消し

ネームスペースに対する権限をロールまたはユーザーから取り消すことができます。ネームスペースに対する権限を取り消すための構文を次に示します。
REVOKE {Namespace-scoped privileges} ON NAMESPACE namespace_name FROM <User|Role>
Namespace-scoped privileges ::= namespace_privilege [, namespace_privilege]

説明

  • namespace_privilege

    ユーザーまたはロールから取り消すことができるネームスペース権限。適用可能な権限の詳細は、「ネームスペースの権限」表の「権限」列を参照してください。

  • namespace_name

    ユーザーがアクセスするネームスペース。

  • <User|Role>

    KVStoreユーザーの名前またはユーザーのロール。

たとえば、ネームスペース内のすべての表に対する読取りアクセス権をユーザーから取り消すことができます。
Example:

REVOKE READ_IN_NAMESPACE ON NAMESPACE ns1 FROM Kate;

ここでは、ns1はネームスペースであり、Kateはユーザーです。

ノート:

ラベルMODIFY_IN_NAMESPACEは、特定のネームスペースに対するすべてのDDL権限をユーザーまたはロールに対して付与または取り消すためのヘルパーとして使用できます。
次に例を示します。
  1. ネームスペースおよび表の作成。
  2. ネームスペース内に他の新しい表を作成する権限の取消し(ただし表の削除は許可)。
Example: Namespace Scoped Privileges

CREATE NAMESPACE IF NOT EXISTS ns1; 
GRANT MODIFY_IN_NAMESPACE ON NAMESPACE ns1 TO usersRole; 
CREATE TABLE ns1:t (id INTEGER, name STRING, primary key (id)); 
INSERT INTO ns1:t VALUES (1, 'Smith'); 
SELECT * FROM ns1:t; 
REVOKE CREATE_TABLE_IN_NAMESPACE ON NAMESPACE ns1 FROM usersRole; 
DROP NAMESPACE ns1 CASCADE;

ノート:

前述のコマンドをすべてsqlスクリプトとして保存し、1つのコマンドで実行できます。前述のコマンドのいずれかをSQLプロンプトの外部で実行する場合は、文末のセミコロンを削除します。