ALTER
DISKGROUP
SQL文を使用して、Oracle ASMディスク・グループのファイル・アクセス制御を管理できます。これらのSQL文は、データベース・インスタンスとOracle ASMインスタンスの両方で使用可能です。
SQL*Plusでユーザーを管理する場合、ユーザーは既存のオペレーティング・システム・ユーザーで、そのユーザー名には対応するオペレーティング・システム・ユーザーIDが含まれている必要があります。ただし、Oracle ASMインスタンスと同じクラスタ内のユーザーのみを検証できます。
注意:
ファイルの所有権を変更する場合、ファイルの所有権の変更後でも、ファイルが開いている間は、ファイルの前の所有者を削除できません。
ディスク・グループ・アクセス制御をサポートするSQL文は、次のとおりです。
ALTER
DISKGROUP
ADD
USERGROUP
WITH
MEMBER
Oracle ASMユーザー・グループをディスク・グループに追加します。ユーザー・グループ名は、最大30文字に制限されています。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 disk_group 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';
関連項目:
『Oracle Database SQL言語リファレンス』のALTER DISKGROUP
SQL文