0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle 11gで読み取り専用アカウントを作成し参照できるテーブルを制限したい場合

Last updated at Posted at 2025-06-12

ユーザー作成

-- ユーザー作成
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;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?