今回はOracle Databaseの「ディレクトリオブジェクト」の
- 「作成」
- 「権限付与」
- 「確認」
- 「削除」
のSQLを紹介したと思います。
この記事にはディレクトリオブジェクトに必要な全てのことを記
載しますので、
必ずマスターするようにしましょう。
目次
ディレクトリオブジェクトの作成:create or replace directory
ディレクトリオブジェクトの作成は
create or replace directory
で行います。
create or replace directory [ディレクトリオブジェクト] AS [ディレクトリオブジェクトのパス];
以下が実行例です。
16:24:14 SYS@orcl18c > create or replace directory DUMPDIR AS '/u01/app/oracle/admin/orcl18c/dpdump/';ディレクトリが作成されました。
経過: 00:00:00.06
ディレクトリオブジェクトへ読み書き権限の付与:grant read write on directory ~
ディレクトリオブジェクトは作成しても読み書き権限がないと利用ことが出来ません。
「grant文」で「read」および「write」の権限を付与しましょう。
grant read, write on directory <ディレクトリオブジェクト> to <ユーザーorロール>
以下が実行例です。
17:21:31 SYS@orcl18c > grant read, write on directory DUMPDIR to test001;権限付与が成功しました。
経過: 00:00:00.08
ディレクトリオブジェクトの確認:dba_directories
ディレクトリオブジェクトの確認は
dba_directories
ビューで確認します。
select directory_name,
directory_path
from dba_directories
where directory_name = <ディレクトリオブジェクト名>;
下が実行例です。
17:37:25 SYS@orcl18c > set line 1000
17:38:56 SYS@orcl18c > col directory_name for a20
17:38:56 SYS@orcl18c > col directory_path for a80
17:38:56 SYS@orcl18c > select directory_name,
17:38:56 2 directory_path
17:38:56 3 from dba_directories
17:38:56 4 where directory_name = 'DUMPDIR';
DIRECTORY_NAME DIRECTORY_PATH
-------------------- --------------------------------------------------------------------------------
DUMPDIR /u01/app/oracle/admin/orcl18c/dpdump/
ディレクトリオブジェクトの権限付与確認:dba_tab_privs
ユーザーにディレクトリオブジェクトの読み書き権限が付与されているか確認するのは
dba_tab_privs
を利用します。
以下のselect文で確認することができます。
set line 1000 col table_name for a20
col PRIVILEGE for a20
select TABLE_NAME, PRIVILEGE
from dba_tab_privs where GRANTEE = <ユーザーorロール名>;
以下が実行例です。
17:46:59 SYS@orcl18c > set line 1000
17:47:00 SYS@orcl18c > col table_name for a20
17:47:00 SYS@orcl18c > col PRIVILEGE for a20
17:47:00 SYS@orcl18c > select TABLE_NAME,
17:47:00 2 PRIVILEGE
17:47:00 3 from dba_tab_privs
17:47:00 4 where GRANTEE = 'TEST001';
TABLE_NAME PRIVILEGE
-------------------- --------------------
DUMPDIR READ
DUMPDIR WRITE
経過: 00:00:00.00
ディレクトリオブジェクトの削除:drop directory
ディレクトリオブジェクトを削除するのは
drop directory
を実行します。
drop directory <ディレクトリオブジェクト名>;
以下が実行例になります。
18:04:00 SYS@orcl18c > drop directory DUMPDIR;
ディレクトリが削除されました。
経過: 00:00:00.19
関連記事:Datapumpの方法
ディレクトリオブジェクトを作成すると言ったら、
Datapumpを利用したエクスポート/インポートです。
以下に関連記事を載せておきますので確認してみてください。
DataPump(expdp/impdp)でバックアップ/リストアの方法と事前準備
Oracle Databaseの論理バックアップ・リストアツール「DataPump」の使い方について紹介します。 Datapumpを利用するには準備が必要で使う時にも少々癖がありますが、こ...