ヘッダーをスキップ
Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル
リリース7.2
E06177-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1.58 RMU Set Privilegeコマンド

データベースのルート・ファイル・アクセス制御リスト(ACL)を変更できます。

データベースのルート・ファイルACLによって、対応するデータベースにユーザーが実行できるOracle RMUコマンドが決まります。


形式



説明

RMU Set Privilegeコマンドを使用すると、ルート・ファイルACL全体の操作、あるいはルート・ファイルACL内のアクセス制御エントリ(ACE)の作成、変更または削除を行うことができます。ACEおよびACLの概要は、『Oracle Rdb Guide to Database Design and Definition』を参照してください。

RMU Set Privilegeコマンドを使用してACEをルート・ファイルACLに追加するには、Acl修飾子にACEを指定します。

「表1-1」に、各Oracle RMUコマンドを利用するためにユーザーに必要な権限を示します。

RMU Set Privilegeコマンドで指定するデータベース・ルート・ファイルにACLがない場合は、Oracle RMUによって作成されます。

RMU Set Privilegeコマンドでは、様々な方法でACEやACLを操作するために次の修飾子が用意されています。

After
Delete
Like
New
Replace

デフォルトでは、ルート・ファイルACLに追加するACEはすべてACLの一番上に配置されます。Oracle RMUが、ルート・ファイルACLのあるデータベースへのOracle RMUアクセスのリクエストを受け取ると、常にACLの各エントリを先頭から順に検索し、一致するものが見つかるとそこで検索を停止します。ルート・ファイルACLの後方に別の一致エントリがあっても、効果がありません。ルート・ファイルACL内のACEの位置は非常に重要であるため、After修飾子を使用してACEを正確に配置できます。After修飾子を使用すると、追加するACEは、指定したACEの後に追加されます。

ACEをACLから削除するには、Delete修飾子を使用し、ACEをAcl修飾子に指定します。すべてのACEを削除するには、Delete修飾子を使用し、ACEを指定せずにAcl修飾子を指定します。

Like修飾子を使用すると、あるルート・ファイルのACLを別のルート・ファイルにコピーすることができます。Like修飾子に指定したルート・ファイルのACLによって、root-file-specパラメータに指定したルート・ファイルのACLが置き換えられます。

Acl、LikeまたはReplace修飾子に指定することでACEを追加する前には、New修飾子を使用してすべてのACEを削除します。

Replace修飾子を使用するとルート・ファイルACLの既存のACEを置き換えることができます。Acl修飾子に指定するACEが削除され、Replace修飾子に指定するACEによって置き換えられます。

Delete、ReplaceまたはAfter修飾子を使用するとき、既存のACEは省略できます。

RMU Set PrivilegeコマンドにEdit修飾子を使用すると、ACLエディタが起動されます。次の修飾子を指定できるのは、Edit修飾子も指定する場合のみです。

Journal
Keep
Mode
Recover

ACLエディタの詳細は、OpenVMSドキュメント・セットを参照してください。


コマンドのパラメータ

root-file-spec

ルート・ファイルACLを変更するデータベースのルート・ファイル。

コマンドの修飾子

Acl[=(ace[,...])]

変更する1つ以上のACEを指定します。ACEを指定しないと、ACL全体がコマンドの対象になります。複数のACEはカンマで区切ります。Acl修飾子を使用するときは、After修飾子も指定しないかぎり、指定したACEがACLの一番上に挿入されます。Acl修飾子とAcl_File修飾子を1つのRMUコマンドラインに指定することはできません。

ACEの形式は次のとおりです。


(Identifier=user-id, Access=access_mask)

user-idは、次のいすれかのタイプの識別子であることが必要です。

名前では大文字と小文字は区別されません。また、IdentifierおよびAccessキーワードは省略表記して1文字で表すことができます。たとえば、次のACEが有効です。

(I=isteward, A=RMU$ALL)

access_maskは次のいずれかになります。

Acl_File=filename

ACEのリスト(1行ごとにACEを1つ指定)を含むファイルを指定します。継続文字を使用すると、1つのACEの指定を改行して継続できます。ファイルにはコメント行も含めることができます。このファイルでは、継続文字にはハイフン(-)、コメントを示すには感嘆符(!)を使用します。

Acl_File修飾子とAcl修飾子を1つのRMUコマンドラインに指定することはできません。

After=ace

Acl修飾子に指定したすべてのACEを、After修飾子に指定したACEの後に追加することを指定します。デフォルトでは、ACLに追加されるACEはリストの一番上に配置されます。

この修飾子をEdit修飾子と一緒に使用することはできません。

Delete[=All]

Acl修飾子に指定したACEを削除することを指定します。Acl修飾子にACEを指定しないとACL全体が削除されます。Acl修飾子に指定していないACEを指定すると、ACEが存在しないことが通知され、削除操作が続行します。

この修飾子をEdit修飾子と一緒に使用することはできません。

Edit

ACLエディタを起動します。また、Journal、Keep、ModeまたはRecover修飾子を使用できるようになります。これら以外の修飾子をEdit修飾子と一緒に指定しても、Oracle RMUによって無視されます。

Edit修飾子を付けたRMU Set Privilegeコマンドが機能するのはオフラインの場合のみです。オンラインで試行するとエラー・メッセージが生成されます。ACLエディタではデータベースへの排他書込みアクセスが要求されるため、この制約が必要です。

Edit修飾子を使用するには、SYS$SHARE:ACLEDTSHR.EXEイメージがシステム起動時にインストールされている必要があります(または、RMONSTART.COMによってインストールされている必要があります)。このイメージがインストールされていない場合は、必要に応じてシステム・マネージャに問い合せてください。

ACLエディタの詳細は、OpenVMSドキュメント・セットを参照してください。

Journal[=file-spec]

Nojournal

ジャーナル・ファイルが編集セッションから作成されるかどうかを制御します。デフォルトでは、ジャーナル・ファイルが作成されるのは編集セッションが異常終了したときです。

ファイル指定を省略すると、ジャーナル・ファイルの名前はルート・ファイルと同じになり、ファイル・タイプは.tjlになります。Journal修飾子を使用して、デフォルトとは異なるジャーナル・ファイル名を指定できます。Journal修飾子のfile-specパラメータではワイルドカード文字を使用できません。

この修飾子を使用するにはEdit修飾子を指定する必要があります。

Keep[=(Recovery,Journal)]

編集セッションが終了したときに、ジャーナル・ファイルまたはリカバリ・ファイル(あるいは両方)を削除するかどうかを決定します。オプションは次のとおりです。

JournalおよびRecoverオプションは、それぞれJとRに短縮できます。オプションを1つしか指定しない場合、カッコは省略できます。

この修飾子を使用するにはEdit修飾子を指定する必要があります。Edit修飾子を指定してKeep修飾子を指定しないと、編集セッションが終了したときに、現在の編集セッションのジャーナル・ファイルとACLをリストアするために使用されたジャーナル・ファイルの両方が削除されます。

Like=source-root-file-spec

Like修飾子に指定したルート・ファイルのACLが、RMU Set Privilegeコマンドのroot-file-specパラメータに指定したルート・ファイルのACLを置き換えることを指定します。既存のACEが削除されてから、Like修飾子に指定したルート・ファイルACLがコピーされます。

この修飾子をEdit修飾子と一緒に使用することはできません。

Log

Nolog

RMU Set Privilegeコマンドが、コマンドによって変更されたルート・ファイルの名前と、データベースに関連付けられているACLの両方を返すことを指定します。デフォルトのNologではこの出力は抑制されます。

この修飾子をEdit修飾子と一緒に使用することはできません。

Mode=[No]Prompt

ACLエディタがフィールド値に対するプロンプトを表示するかどうかを決定します。デフォルトではACLエディタによってプロンプト・モードが選択されます。

この修飾子を使用するにはEdit修飾子を指定する必要があります。

New

RMU Set Privilegeに指定したルート・ファイルのACL内の既存のACEをすべて削除することを指定します。New修飾子を使用するには、Acl、LikeまたはReplace修飾子に新しいACLまたはACEを指定する必要があります。

この修飾子をEdit修飾子と一緒に使用することはできません。

Recover[=file-spec]

Norecover

リカバリ操作で使用されるジャーナル・ファイルの名前を指定します。Recover修飾子でファイル指定を省略すると、ジャーナルの名前はルート・ファイルと同じ、ファイル・タイプは.tjlとみなされます。Recover修飾子のfile-specパラメータではワイルドカード文字を使用できません。

デフォルトはNorecover修飾子です。ルート・ファイルACLを編集するためにACLエディタを起動するときに、リカバリが試行されません。

この修飾子を使用するにはEditを指定する必要があります。

Replace=(ace[,...])

Acl修飾子に指定したACEを削除し、Replace修飾子に指定したACEで置き換えます。Acl修飾子に指定するACEは、存在している必要があります。また、ACL内と同じ順序で指定する必要があります。

この修飾子をEdit修飾子と一緒に使用することはできません。


使用上の注意


例1

次の例では、ユーザー識別コード(UIC)[SQL,USER]のユーザーがmf_test_dbデータベースを作成します。したがって、そのユーザーがそのデータベースの所有者になります。mf_test_dbデータベースを作成した後で、所有者がデータベースのルート・ファイルACLを表示します。次に、所有者がOracle RMU権限をデータベース・ユーザーに付与します。各タイプのユーザーに付与されるOracle RMU権限は、ユーザーがデータベースで必要とするOracle RMUアクセスのタイプによって異なります。


$! Note that by default the owner (the user with a UIC of [SQL,USER])
$! is granted all the  Oracle RMU  privileges in the root file
$! ACL and no other users are granted any  Oracle RMU  privileges.
$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:51:55.79

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
$!
$! The owner uses the RMU Set Privilege command and the After
$! qualifier to grant the RMU$ANALYZE, RMU$OPEN, and
$! RMU$VERIFY privileges to a user with a UIC of [SQL,USER2].
$! This user will serve as the database administrator for the
$! mf_test_db database.
$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE -
_$ +RMU$OPEN+RMU$VERIFY) -
_$ /AFTER=(IDENTIFIER=[SQL,USER])/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified

$!
$! Next, the owner grants the RMU$SECURITY privilege to a user with a
$! UIC of [SQL,USER3].  This gives the user USER3 the ability
$! to grant other users the appropriate privileges they need for
$! accessing the database with  Oracle RMU  commands.  Because both
$! the database creator and user USER3 have the RMU$SECURITY
$! privilege, both of them can modify the root file ACL for the
$! database.

$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY) -
_$ /AFTER=(IDENTIFIER=[SQL,USER2])/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$! The user with a UIC of [RDB,USER4], who will serve as the database
$! operator, is granted the RMU$BACKUP, RMU$CONVERT, RMU$DUMP, and
$! RMU$RESTORE privileges:
$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[RDB,USER4],ACCESS=RMU$BACKUP -
_$ +RMU$CONVERT+RMU$DUMP+RMU$RESTORE) -
_$ /AFTER=(IDENTIFIER=[SQL,USER3])/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$! The RMU$LOAD and RMU$SHOW privileges are granted to the user
$! with a UIC of [RDB,USER5]. This user will be writing programs
$! that load data into the database.
$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[RDB,USER5],ACCESS=RMU$LOAD -
_$ +RMU$SHOW) /AFTER=(IDENTIFIER=[RDB,USER4]) MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$! No privileges are granted to all other users.
$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[*,*],ACCESS=NONE) -
_$ /AFTER=(IDENTIFIER=[RDB,USER5])/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$! The RMU/SHOW PRIVILEGE command displays the root file ACL for the
$! mf_test_db database.
$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:52:17.03

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[RDB,USER4],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[RDB,USER5],ACCESS=RMU$LOAD+RMU$SHOW)
    (IDENTIFIER=[*,*],ACCESS=NONE)

例2

次のコマンドは、UICが[RDB,USER1]のユーザーのACEを人事データベースのルート・ファイルACLに追加します。このACEによって、[RDB,USER1]に人事データベースのRMU$BACKUP権限が付与されます。RMU$BACKUP権限により、ユーザー[RDB,USER1]は、人事データベースに対してRMU Backup、RMU Backup After_JournalおよびRMU Checkpointコマンドを利用できます。


$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[RDB,USER1],ACCESS=RMU$BACKUP) -
_$ PERSONNEL.RDB

例3

次の例では、Replace修飾子によって、ルート・ファイルACL内のUICが[RDB,USER4]のユーザーのACEが、UICが[SQL,USER6]のユーザーのために指定されたACEで置き換えられます。


$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[RDB,USER4]) -
_$ /REPLACE=(IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT -
_$ +RMU$DUMP+RMU$RESTORE)/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:52:23.92

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[RDB,USER5],ACCESS=RMU$LOAD+RMU$SHOW)
    (IDENTIFIER=[*,*],ACCESS=NONE)

例4

次の例では、Delete修飾子によって、UICが[RDB,USER5]のユーザーのACEが、mf_test_dbデータベースのルート・ファイルACLから削除されます。


$ RMU/SET PRIVILEGE/ACL=(IDENTIFIER=[RDB,USER5]) -
_$ /DELETE/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified
$!
$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:52:29.07

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[*,*],ACCESS=NONE)

例5

次の例では、Like修飾子によって、ルート・ファイルACLがmf_test_dbデータベースからtest_dbデータベースにコピーされます。この操作においてtest_dbデータベースのオリジナルのルート・ファイルACLは削除されます。


$ RMU/SHOW PRIVILEGE TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]TEST_DB.RDB;1,  on
30-MAR-1996 15:52:31.48

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
$ !
$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:52:33.86

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[*,*],ACCESS=NONE)
$!
$ RMU/SET PRIVILEGE/LIKE=MF_TEST_DB.RDB/LOG TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]TEST_DB.RDB;1 modified
$!
$ RMU/SHOW PRIVILEGE TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]TEST_DB.RDB;1,  on
30-MAR-1996 15:52:41.36

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[*,*],ACCESS=NONE)

例6

次の例では、New修飾子によって既存のすべてのACEが削除され、Acl修飾子によってmf_test_dbデータベースのルート・ファイルACLの新しいACEが指定されます。この例のRMU Set Privilegeコマンドが発行された後では、UICが[SQL,USER2]のユーザーまたはOpenVMSオーバーライド権限を持つユーザーしか、mf_test_dbデータベースのルート・ファイルACLを表示できません。


$ RMU/SHOW PRIVILEGE MF_TEST_DB.RDB
Object type: file,  Object name: SQL_USER:[USER]MF_TEST_DB.RDB;1,
on 30-MAR-1996 15:52:44.50

    (IDENTIFIER=[SQL,USER],ACCESS=READ+WRITE+CONTROL+RMU$ALTER+
    RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+RMU$DUMP+RMU$LOAD+
    RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SECURITY+RMU$SHOW+RMU$UNLOAD+
    RMU$VERIFY)
    (IDENTIFIER=[SQL,USER2],ACCESS=RMU$ANALYZE+RMU$OPEN+RMU$VERIFY)
    (IDENTIFIER=[SQL,USER3],ACCESS=RMU$SECURITY)
    (IDENTIFIER=[SQL,USER6],ACCESS=RMU$BACKUP+RMU$CONVERT+RMU$DUMP+
    RMU$RESTORE)
    (IDENTIFIER=[*,*],ACCESS=NONE)
$!
$ RMU/SET PRIVILEGE/NEW -
_$ /ACL=(IDENTIFIER=[SQL,USER2],ACCESS=READ+WRITE+CONTROL+ -
_$ RMU$ALTER+RMU$ANALYZE+RMU$BACKUP+RMU$CONVERT+RMU$COPY+ -
_$ RMU$DUMP+RMU$LOAD+RMU$MOVE+RMU$OPEN+RMU$RESTORE+RMU$SHOW+ -
_$ RMU$UNLOAD+RMU$VERIFY)/LOG MF_TEST_DB.RDB
%RMU-I-MODIFIED, SQL_USER:[USER]MF_TEST_DB.RDB;1 modified