ネームスペースへの認可アクセス権の付与
ネームスペースおよび表にアクセスするためのユーザーまたはロールの権限を管理できます。次に、開発者やその他のユーザーに指定された適切な権限を示します。
表3-1 ネームスペースの権限
権限 | 説明 |
---|---|
|
ネームスペースを作成または削除する権限をユーザーまたはロールに付与します。
|
|
特定のネームスペースの表を作成、削除または展開するための権限をユーザーまたはロールに付与します。表を展開して、表定義を更新したり、フィールドを追加または削除したり、デフォルト値などのフィールド・プロパティを変更できます。特定の種類の列(IDENTITY列など)を追加して、値を自動的に増やすこともできます。すでにストアに存在する表のみが表のエボリューションの候補となります。詳細は、表の変更を参照してください。
|
|
特定のネームスペースで索引を作成または削除する権限をユーザーまたはロールに付与します。
|
|
特定のネームスペースで項目を読取り、挿入または削除するロールに権限を付与します。
|
|
特定のネームスペースに対するすべてのDDL権限をユーザーまたはロールに対して付与または取り消すためのヘルパー・ラベル。
|
ネームスペースに対する権限の付与
ネームスペースに対する権限をロールまたはユーザーに付与できます。ネームスペースに対する権限を付与するための構文を次に示します。
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権限をユーザーまたはロールに対して付与または取り消すためのヘルパーとして使用できます。次に例を示します。
- ネームスペースおよび表の作成。
- ネームスペース内に他の新しい表を作成する権限の取消し(ただし表の削除は許可)。
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プロンプトの外部で実行する場合は、文末のセミコロンを削除します。