ディスク・グループのOracle ASMファイル・アクセス制御の管理
Oracle ASMファイル・アクセス制御を使用すると、Oracle ASMディスク・グループの内容を未認可のOracle ASMクライアント(未認可のデータベースなど)による偶発的なアクセスから必要に応じて保護することができます。
Oracle ASMファイル・アクセス制御を設定するには、個別のオペレーティング・システム・グループを指定する必要があります。Oracle ASMファイル・アクセス制御は、ASMCMDコマンドおよびSQL文で管理できます。
この項の内容は次のとおりです。
関連項目:
-
個別のオペレーティング・システム・グループの指定については、「Oracle ASMユーザーへの個別のオペレーティング・システム・グループの使用」
-
ASMCMDコマンドを使用したOracle ASMファイル・アクセス制御管理の詳細は、「ASMCMDファイル・アクセス制御コマンド」
-
Oracle ASMファイル・アクセス制御に関する詳細を表示するビューの詳細は、「Oracle ASMファイル・アクセス制御情報の表示」
-
Oracle ASMインスタンスへのアクセスの制御の詳細は、「Oracle ASMインスタンスにアクセスするための認証」
Oracle ASMファイル・アクセス制御について
Oracle ASMファイル・アクセス制御は、ファイルへのアクセスをSYSDBAとして接続する特定のOracle ASMクライアントに制限します。
通常、Oracle ASMクライアントはデータベースで、データベース・インスタンス・ホームを所有するユーザーとして識別されます。Oracle ASMファイル・アクセス制御では、データベースの識別にこのユーザー名を使用します。Oracle ASMファイル・アクセス制御は、データベース所有者のオペレーティング・システム有効ユーザー識別番号に基づいてアクセスを制御します。たとえば、表3-2では、データベースはoracle1
およびoracle2
として識別されます。
Oracle ASMではファイル・アクセス制御を使用して、そのOracle ASMインスタンスでSYSDBAとして認証されているデータベースに追加の権限が付与されているかどうかを判断します。これらの追加権限には、特定のファイル、エイリアス、ユーザー・グループを修正および削除する機能が含まれます。
ユーザー・グループを設定して、Oracle ASMファイルに対する同じアクセス権限を共有するデータベースのリストを指定できます。ユーザー・グループは、データベースのリストで、SYSDBAとして認証されるデータベースはユーザー・グループを作成できます。ただし、グループの作成者のみが、グループを削除したり、そのメンバーシップ・リストを変更したりできます。
各Oracle ASMファイルには、所有者、グループおよびその他の3つの権限カテゴリがあります。各カテゴリは、権限なしか、読取り専用権限または読取り/書込み権限を持ちます。
ファイル所有者は通常そのファイルの作成者で、所有者、グループ、その他のカテゴリのいずれかのファイルに対する権限を割り当てることができます。所有者は、そのファイルに関連付けられたグループも変更できます。
ファイルを作成しても、グループはそのファイルに自動的に関連付けられません。Oracle ASMファイル・アクセス制御には、ユーザーのプライマリ・グループの概念がないため、asmcmd
chgrp
コマンドを使用して、グループを手動で設定する必要があります。
Oracle ASMファイル・アクセス制御を管理する場合、ディスク・グループ内のファイルの所有者(または予定されている所有者)であるデータベース・インスタンスにSYSDBAとして接続することをお薦めします。
ディスク・グループ内のファイルについてOracle ASMファイル・アクセス制御を設定するには、次のステップを実行します。
-
新しいまたは既存のディスク・グループを変更して、Oracle ASMファイル・アクセス制御のディスク・グループ属性を設定します。
新規作成したディスク・グループの場合は、ディスク・グループにファイルを作成する前にディスク・グループ属性を設定する必要があります。
-
ディスク・グループに存在するファイルには、Oracle ASMファイル・アクセス制御のディスク・グループ属性を設定する前に、その既存のファイルに対する権限および所有権を明示的に設定する必要があります。
ファイルに対する所有権または権限を設定する前に、ユーザーが存在することを確認します。所有権または権限を設定する前に、ファイルを閉じる必要があります。
-
必要に応じて、Oracle ASMファイルに対する同じアクセス権限を共有するデータベース・ユーザーのグループであるユーザー・グループを作成できます。
関連項目:
-
ディスク・グループ属性の設定の詳細は、「Oracle ASMファイル・アクセス制御のためのディスク・グループ属性の設定」
-
ALTER
DISKGROUP
SET
PERMISSION
およびALTER
DISKGROUP
SET
OWNERSHIP
を使用して、SQL文によってOracle ASMファイル・アクセス制御を管理する方法の詳細は、「SQL文を使用したOracle ASMファイル・アクセス制御の管理」 -
ALTER
DISKGROUP
ADD
USERGROUP
の使用の詳細は、「SQL文を使用したOracle ASMファイル・アクセス制御の管理」
Oracle ASMファイル・アクセス制御へのディスク・グループ属性の設定
Oracle ASMファイル・アクセス制御を管理するには、ACCESS_CONTROL.ENABLED
およびACCESS_CONTROL.UMASK
ディスク・グループ属性を設定する必要があります。ALTER
DISKGROUP
SQL文でディスク・グループを変更して属性を設定するか、またはASMCMD setattr
コマンドを使用して属性を設定できます。
ファイル・アクセス制御を既存のディスク・グループに対して設定した場合、作成済のファイルはすべてのユーザーからアクセス可能なままになります。これを避けるには、ALTER
DISKGROUP
SET
PERMISSION
SQL文を実行するか、ASMCMD chmod
コマンドを実行して権限を制限します。
Oracle ASMファイル・アクセス制御を有効にするには、COMPATIBLE.ASM
およびCOMPATIBLE.RDBMS
ディスク・グループ属性を11.2
以上に設定する必要があります。
Oracle ASMファイル・アクセス制御を制御するディスク・グループ属性は次のとおりです。
-
ACCESS_CONTROL.ENABLED
この属性により、Oracle ASMファイル・アクセス制御がディスク・グループに対して有効かどうかが決まります。
値は
true
またはfalse
です。デフォルトは、false
です。属性が
true
に設定されている場合、Oracle ASMファイルへのアクセスはアクセス制御の対象となります。false
に設定した場合、すべてのユーザーがディスク・グループ内のすべてのファイルにアクセスできます。他のすべての操作は、この属性とは関係なく動作します。 -
ACCESS_CONTROL.UMASK
この属性により、Oracle ASMファイルの作成時に、ファイルの所有者であるユーザー、同じユーザー・グループのユーザー、およびユーザー・グループに属さない他のユーザーに対して、どの権限をマスクするかが決まります。この属性は、ディスク・グループ内のすべてのファイルに適用されます。
値は3桁の数字{
0
|2
|6
} {0
|2
|6
} {0
|2
|6
}の組合せです。デフォルトは066
です。0
に設定すると、何もマスクされません。2
に設定すると、書込み権限がマスクされます。6
に設定すると、読取り権限と書込み権限の両方がマスクされます。ACCESS_CONTROL.UMASK
ディスク・グループ属性を設定する前に、ACCESS_CONTROL.ENABLED
属性をtrue
に設定してOracle ASMファイル・アクセス制御を有効にしておく必要があります。
例4-11に、SQL*Plusを使用してディスク・グループに対するOracle ASMファイル・アクセス制御を有効にする方法を示します。この例では、umask
権限設定は026
で、これにより、所有者には読取り/書込みアクセス(0
を使用して何もマスクしない)、グループのユーザーには読取りアクセス(2
を使用して書込み権限をマスク)が有効になり、グループに属さない他のユーザーにはアクセスが許可されません(6
を使用してすべてのアクセスをマスク)。
例4-11 Oracle ASMファイル・アクセス制御の設定
ALTER DISKGROUP data1 SET ATTRIBUTE 'access_control.enabled' = 'true'; ALTER DISKGROUP data1 SET ATTRIBUTE 'access_control.umask' = '026';
関連項目:
-
ASMCMD
setattr
コマンドの詳細は、「setattr」 -
ASMCMD
chmod
コマンドの詳細は、「chmod」 -
ディスク・グループの互換性属性の詳細は、「ディスク・グループの互換性」
SQL文を使用したOracle ASMファイル・アクセス制御の管理
ALTER
DISKGROUP
SQL文を使用して、Oracle ASMディスク・グループのファイル・アクセス制御を管理できます。これらのSQL文は、データベース・インスタンスとOracle ASMインスタンスの両方で使用可能です。
SQL*Plusでユーザーを管理する場合、ユーザーは既存のオペレーティング・システム・ユーザーで、そのユーザー名には対応するオペレーティング・システム・ユーザーIDが含まれている必要があります。ただし、Oracle ASMインスタンスと同じクラスタ内のユーザーのみを検証できます。
ノート:
ファイルの所有権を変更する場合、ファイルの所有権の変更後でも、ファイルが開いている間は、ファイルの前の所有者を削除できません。
ディスク・グループ・アクセス制御をサポートするSQL文は、次のとおりです。
-
ALTER
DISKGROUP
ADD
USERGROUP
WITH
MEMBER
Oracle ASMユーザー・グループをディスク・グループに追加します。ユーザー・グループ名の最大長は63バイトです。ユーザー名を指定する場合は、それがOSパスワード・ファイル内に含まれている必要があり、32文字を超えることはできません。
MEMBER
句に指定されるデータベースのオペレーティング・システム・ユーザーは、V$ASM_USER
に表示されるように、そのディスク・グループに属している必要があり、そうでなければエラーが戻されます。SYSASM
またはSYSDBA
として認証されたユーザーならば誰でも、新しいユーザー・グループを作成できます。次に例を示します。SQL> SELECT group_number, os_name FROM V$ASM_USER; GROUP_NUMBER OS_NAME ------------ ---------------------------------------------------------------- 1 oracle1 1 oracle2 ... SQL> ALTER DISKGROUP data ADD USERGROUP 'test_grp1' WITH MEMBER 'oracle1','oracle2';
-
ALTER
DISKGROUP
DROP
USERGROUP
Oracle ASMユーザー・グループをディスク・グループから削除します。グループを削除すると、有効なグループのないファイルがいくつか残る可能性があります。これらのファイルに有効なグループを持たせるには、ファイルに関連付けられたグループを有効なグループに手動で更新する必要があります。
SQL> ALTER DISKGROUP data DROP USERGROUP 'test_grp1';
-
ALTER
DISKGROUP
MODIFY
USERGROUP
ADD
MEMBER
指定したユーザー・グループにユーザーを追加します。ユーザーは、
V$ASM_USER
に表示されるように、そのディスク・グループに属している必要があり、さもなければエラーが戻されます。グループの作成者またはOracle ASM管理者のみが、グループ・メンバーシップを変更できます。SQL> ALTER DISKGROUP data MODIFY USERGROUP 'test_grp2' ADD MEMBER 'oracle2';
-
ALTER
DISKGROUP
MODIFY
USERGROUP
DROP
MEMBER
指定したユーザー・グループからユーザーを削除します。メンバーがそのユーザー・グループに属していなければ、エラーが戻されます。グループの作成者またはOracle ASM管理者のみが、グループ・メンバーシップを変更できます。
SQL> ALTER DISKGROUP data MODIFY USERGROUP 'test_grp2' DROP MEMBER 'oracle2';
-
ALTER
DISKGROUP
ADD
USER
オペレーティング・システム(OS)ユーザーをOracle ASMディスク・グループに追加し、これらのユーザーがディスク・グループに対するアクセス権限を持つことができるようにします。ユーザーが、
V$ASM_USER
に表示されるように、ディスク・グループに存在する場合、コマンドはエラーを記録し、他のユーザーがいればその追加を続行します。動作中のデータベース・インスタンスのオペレーティング・システム・ユーザーは、データベース・インスタンスがディスク・グループにアクセスしてファイルを作成すると、自動的にそのディスク・グループに追加されます。ただし、データベース・インスタンスがファイルを作成せずにディスク・グループ内のファイルを読み取るには、
ADD
USER
句を使用してそのデータベースに関連付けられているオペレーティング・システム・ユーザーをディスク・グループに追加する必要があります。また、この句を使用すると、Oracle ASMファイル・アクセス制御のディスク・グループ属性を設定した直後から、ファイルを新規作成する前に、データベースに関連付けられているオペレーティング・システム・ユーザーを既存のディスク・グループに追加できます。SQL> ALTER DISKGROUP data ADD USER 'oracle1';
-
ALTER
DISKGROUP
DROP
USER
オペレーティング・システム・ユーザーをOracle ASMディスク・グループから削除します。ユーザーがディスク・グループに存在しない場合、このコマンドはエラーを記録し、他にユーザーが存在すれば、削除を続行します。
ユーザーが同じOracle ASMディスク・グループでファイルを所有している場合、
CASCADE
キーワードが指定されていないと、このコマンドはエラーにより失敗します。この場合、ユーザーは、所有するすべてのファイルとともに削除されます。ユーザーが所有するファイルが現在開いている場合、
DROP
USER
コマンドは失敗し、ファイルは削除されません。SQL> ALTER DISKGROUP data DROP USER 'oracle1';
-
ALTER
DISKGROUP
REPLACE
USER
オペレーティング・システム・ユーザーをOracle ASMディスク・グループ内の別のユーザーに置き換えます。置換ユーザーは、現在ディスク・グループのユーザー・リストにあるユーザーにしないでください。
コマンドが成功すると、現在のユーザーが以前に所有していたすべてのファイルが、置換ユーザーによって所有されるようになります。現在のユーザーは、ディスク・グループのユーザー・リストから自動的に削除されます。現在のユーザーをディスク・グループに戻すことは可能ですが、このユーザーはどのファイルも所有しません。
オープン・ファイルの所有者を変更すると、クラスタ内のすべてのインスタンスが再起動するまで、新しい所有者をその所有者のファイルで削除できません。
Oracle ASM管理者のみがこのコマンドを実行できます。
SQL> ALTER DISKGROUP data REPLACE USER 'oracle1' WITH 'oracle2';
-
ALTER
DISKGROUP
SET
PERMISSION
Oracle ASMファイルの権限を変更します。
read
write
権限を持つファイルにread
only
権限を設定すると、write
権限が取り消されます。ファイル所有者またはOracle ASM管理者のみが、ファイルの権限を変更できます。SQL> ALTER DISKGROUP data SET PERMISSION OWNER=read write, GROUP=read only, OTHER=none FOR FILE '+data/controlfile.f';
-
ALTER
DISKGROUP
SET
OWNERSHIP
ファイルの所有者またはグループを、指定したユーザー名またはユーザー・グループ名にそれぞれ変更します。指定したユーザー名またはユーザー・グループ名が存在しない場合、このコマンドはエラーにより失敗します。ファイルの所有者またはOracle ASM管理者のみがこのコマンドを実行でき、Oracle ASM管理者のみが所有者を変更できます。また、ユーザー・グループ名は存在する必要があり、ファイルの所有者はそのグループのメンバーであることが必要です。
SQL> ALTER DISKGROUP data SET OWNERSHIP OWNER='oracle1', GROUP='test_grp1' FOR FILE '+data/controlfile.f';
関連項目: