OracleDB

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

2018年9月28日

こんにちは!土門大貴(daikidomon)です。

今回は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)でバックアップ/リストアの方法と事前準備

こんにちは!土門大貴(daikidomon)です。 Oracle Databaseの論理バックアップ・リストアツール「D ...

続きを見る

関連記事

-OracleDB

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.