[Oracle] ディレクトリオブジェクトの作成・権限付与・確認・削除

今回は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を利用するには準備が必要で使う時にも少々癖がありますが、こ...
  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次