Oracleを使った開発環境構築時に良く忘れて、手間がかかるのでメモ書き。
Oracle SQL Developerを使用して実行を想定。impdpだけコンソールから実行している。
ユーザー作成
まずはユーザー作成。
CREATE USER [USER_NAME] IDENTIFIED BY "password";
--実際の入力例
CREATE USER TARO IDENTIFIED BY "TAROpassword";
--(おまけ)パスワード間違ってしまい変更したいときは以下を実施
--ALTER USER TARO IDENTIFIED BY "TAROpassword";
権限の付与
以下、必要最低限の権限をGRNT文で付与する。
--テーブル作成権限
GRANT CREATE TABLE TO [USER_NAME];
--データベースインポート(フル)権限
GRANT IMP_FULL_DATABASE TO [USER_NAME];
GRANT CREATE_ANY_DIRECTORY
--ディレクトリオブジェクト読書権限
GRANT READ,WRITE ON DIRECTORY [DIR_OBJECT_NAME] TO [USER_NAME];
--DB接続権限(よく忘れる)
GRANT CONNECT TO [USER_NAME];
--実際の入力例
GRANT CREATE TABLE TO TARO;
GRANT IMP_FULL_DATABASE TO TARO;
GRANT READ,WRITE ON DIRECTORY TARO_IMPORT_DIR TO TARO;
GRANT CONNECT TO TARO;
ユーザーの表領域に対する使用量の制限の設定
たまに、この設定が定義されていない状態だとエラーが出るため定義。
特に制限がない場合には無制限にしているが、問題がありそうな場合には数百MBなどで制限を付けて定義する。
--無制限設定にする場合
ALTER USER [USER_NAME] QUOTA UNLIMITED ON USERS;
--制限を設ける場合
ALTER USER [USER_NAME] QUOTA [任意の数値](M|K) ON USERS;
--実際の入力例
ALTER USER TARO QUOTA UNLIMITED ON USERS; --無制限
ALTER USER TARO QUOTA 100M ON USERS; --100MB
impdpの実行
ついでに記載。よくimpdbと打ち間違える。
--impdpの実行
impdp [USER_NAME]/[Password] directory=[DIR_OBJECT_NAME] dumpfile=[IMPORT_FILE_NAME] VERSION=[VERSION]
--実際の入力例
impdp TARO/TAROpassword directory=TARO_IMPORT_DIR dumpfile=IMPORT.DMP VERSION=12.2.0
またどんづまったらここに追記。