ネームスペース管理
ネームスペース解決
ネームスペースに認可権限を付与すると、ネームスペースとネームスペース内の表の両方にアクセスできるユーザーを決定できます。
table_name
の表を解決するには、次のルールが適用されます。
-
table_name
にネームスペース名が含まれている場合、修飾表名によって表が一意に識別されるため、解決は必要ありません。- ネームスペース名を明示的に指定しなかった場合、使用されるネームスペースは、TableAPIの
executeSync()
、execute()
またはprepare()
メソッドへの入力として指定される、ExecuteOptions
インスタンスに含まれるネームスペースです。 ExecuteOptions
でネームスペースが指定されていない場合、デフォルトのsysdefaultネームスペースが使用されます。
ExecuteOptions
で異なるネームスペースを使用すると、個別の同様の表で同じ問合せを実行できます。
ネームスペースの管理
SHOW NAMESPACES
SHOW NAMESPACES文は、システムのネームスペースのリストを提供します。出力をJSON形式にする場合は、AS JSONを指定できます。
SHOW NAMESPACES
namespaces
sysdefault
SHOW AS JSON NAMESPACES
{"namespaces" : ["sysdefault"]}
DROP NAMESPACE
DROP NAMESPACE文を使用して、ネームスペースを削除できます。
IF EXISTSはオプションの句です。この句を指定し、同じ名前のネームスペースが存在しない場合、エラーは生成されません。この句を指定せず、同じ名前のネームスペースが存在しない場合は、ネームスペースが存在しないことを示すエラーが生成されます。
CASCADEは、表とその索引をこのネームスペース内で削除するかどうかを指定できるオプションの句です。この句を指定し、ネームスペースに表が含まれている場合は、このネームスペース内のすべての表とともにネームスペースが削除されます。この句を指定せず、ネームスペースに表が含まれている場合は、ネームスペースが空でないことを示すエラーが生成されます。
DROP NAMESPACE IF EXISTS ns1 CASCADE
ネームスペース・スコープ指定権限
1つ以上のネームスペースをストアに追加したり、ストア内に表を作成したり、ユーザーにネームスペースや表にアクセスする権限を付与できます。ロールおよびユーザーの管理に関する一般的な情報は、セキュリティ・ガイドのロールまたは権限の付与を参照してください。
Oracle NoSQL Database権限間の関係の詳細は、セキュリティ・ガイドの権限階層を参照してください。
ネームスペースへの認可アクセス権の付与
表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;
ノート:
ラベル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;
ノート:
ラベル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プロンプトの外部で実行する場合は、文末のセミコロンを削除します。