ユーザー作成
-- ユーザー作成
CREATE USER readonly_user IDENTIFIED BY "password";
-- 接続権限付与
GRANT CREATE SESSION TO readonly_user;
readonly_userに対して参照できるテーブルを制限する
特定のテーブルだけSELECT権限を付与し、それ以外の権限を与えなければ、そのユーザーは指定したテーブルのみ参照可能です。
-- SCOTTスキーマのEMPとDEPTテーブルだけ参照させる場合
GRANT SELECT ON scott.emp TO readonly_user;
GRANT SELECT ON scott.dept TO readonly_user;
上記コマンドを取り消しするには
REVOKE SELECT ON scott.emp FROM readonly_user;
REVOKE SELECT ON scott.dept FROM readonly_user;
REVOKE CREATE SESSION FROM readonly_user;
DROP USER readonly_user;
ビューを作成してテーブルのカラムを制限するには
設定
-- 必要なカラムだけを含むビューを作成
CREATE VIEW schema1.v_table1 AS
SELECT col1, col2 FROM schema1.table1;
-- ビューにだけSELECT権限を付与
GRANT SELECT ON schema1.v_table1 TO readonly_user;
設定削除
DROP VIEW schema1.v_table1;
REVOKE SELECT ON schema1.v_table1 FROM readonly_user;
冗長化について
- Oracle 11gの冗長化構成で最も一般的な例は、
Oracle Data Guard
を利用したプライマリ(本番)データベースとスタンバイ(待機)データベースの構成です。 - Data Guardでは、プライマリDBで発生したトランザクションログ(REDOログ)をネットワーク経由でスタンバイDBに送信・適用し、リアルタイムまたは遅延で同期します。障害発生時には、スタンバイDBを昇格させて業務継続が可能です。
読み取り専用のクエリ発行が可能
- Oracle 11g Data Guardのフィジカル・スタンバイ・データベースでは、特定のモードでSELECT(読取り専用クエリ)が可能。
冗長化の確認
SELECT DATABASE_ROLE, PROTECTION_MODE FROM V$DATABASE;
DATABASE_ROLEが
PRIMARYまたは
PHYSICAL STANDBY/LOGICAL STANDBY ならData Guard構成。
- 現在接続中のセッションや接続元IPアドレスは、V$SESSIONビューから確認できます。
sql
SELECT MACHINE, PROGRAM, STATUS FROM V$SESSION;