Oracleで読み取り専用アカウントを作成する詳細手順
2022-01-18 06:17:31
要件の説明
既存のデータベースアカウントです。HEPSUSR:追加、削除、チェックの全権限を持つ。
データベースのアカウントを作成する必要があります。HEPSUSRアカウントの下にあるすべてのテーブルへの読み取り専用アクセス権を持つHTREADERを作成する必要があります。
ステップ1:読み取り専用アカウントの作成
-- Create a read-only account Step 1
CREATE USER htreader identified by 123456;
ステップ2:このアカウントに、データベースへの接続などの基本的な権限を与えます。
--give htreader general privileges such as connect
grant connect to htreader;
grant create view to htreader;
grant create session to htreader;
grant create synonym to htreader;
ステップ3:元アカウントのクエリ権限を取得する
Get all query table permissions for the original HEPSUSR user
select 'grant select on '||owner||'. ||object_name||' to htreader;'
from dba_objects
where owner in ('HEPSUSR')
and object_type='TABLE';
-- The query results in an assignment statement for the new account, as follows
ステップ4:新しいアカウントに元のアカウントの権限を割り当てる
Execute under the original account HEPSUSR to assign the query privileges of the original account to the new account
-------
grant select on HEPSUSR.ENTRY_CERT to htreader;
grant select on HEPSUSR.SUB_MESSAGE_INFO to htreader;
grant select on HEPSUSR.ENTRY_CERT_RELATION to htreader;
grant select on HEPSUSR.ENTRY_CERT_RELATION to htreader;
grant select on HEPSUSR.ENTRY_DECL_TAX to htreader;
grant select on HEPSUSR.ENTRY_DOCU to htreader;
grant select on HEPSUSR.ENTRY_FEES to htreader;
grant select on HEPSUSR.ENTRY_GOODS_TAX to htreader;
grant select on HEPSUSR.ENTRY_HEAD to htreader;
grant select on HEPSUSR.ENTRY_LIST to htreader;
grant select on HEPSUSR.ENTRY_WORKFLOW to htreader;
grant select on HEPSUSR.IQ_APPEND to htreader;
grant select on HEPSUSR.IQ_CERT to htreader;
grant select on HEPSUSR.SUB_SWAP to htreader;
grant select on HEPSUSR.VIN_LIST to htreader;
ステップ5:新アカウント側にピア表示テーブルを作成する
新しく作成された読み取り専用アカウントは、Tables列の表示が空なので、以下のように、新規アカウントログイン画面のPL/SQL表示列に表示一致要素を追加する必要があります。
-- execute on the HEPSUSR side of the original account to get the name of the table that needs to be displayed
select 'create or replace SYNONYM htreader.'||object_name|| ' for ' ||owner|| '.' ||object_name|| ';'
from dba_objects
where owner in ('HEPSUSR')
and object_type='TABLE'
ステップ6:クエリーの結果を新アカウント側で実行する
Execute on the read-only account HTREADER side: add to display individual table information; no display in SYSNONYM directory, no display in tables directory
create or replace SYNONYM htreader.VIN_LIST for HEPSUSR;
create or replace SYNONYM htreader.SUB_SWAP for HEPSUSR;
create or replace SYNONYM htreader.SUB_MESSAGE_INFO for HEPSUSR;
create or replace SYNONYM htreader.IQ_CERT for HEPSUSR;
create or replace SYNONYM htreader.IQ_APPEND for HEPSUSR;
create or replace SYNONYM htreader.ENTRY_WORKFLOW for HEPSUSR.ENTRY_WORKFLOW;
ENTRY_LIST for HEPSUSR.ENTRY_LIST. create or replace SYNONYM htreader;
create or replace SYNONYM htreader.ENTRY_HEAD for HEPSUSR;
ENTRY_GOODS_TAX for HEPSUSR.ENTRY_GOODS_TAX; create or replace SYNONYM htreader;
create or replace SYNONYM htreader.ENTRY_FEES for HEPSUSR;
create or replace SYNONYM htreader.ENTRY_DOCU for HEPSUSR.ENTRY_DOCU;
ENTRY_DECL_TAX for HEPSUSR.ENTRY_DECL_TAX; create or replace SYNONYM htreader;
ENTRY_CONTAINER for HEPSUSR.ENTRY_CONTAINER; create or replace SYNONYM htreader;
ENTRY_CERT_RELATION for HEPSUSR.ENTRY_CERT_RELATION; create or replace SYNONYM htreader;
create or replace SYNONYM htreader.ENTRY_CERT for HEPSUSR.ENTRY_CERT;
ステップ7:実行後、新しいアカウントにログインし、結果を表示する
新しいアカウントは、元のアカウントのすべてのテーブル構造を照会できますが、追加、削除、変更に関連する操作を実行できません
ステップ8:削除、修正sql文の実行テスト
付録 Oracle Queryのアカウントと特権の詳細ステートメント
1. To view all users.
select * from dba_users;
select * from all_users;
select * from user_users;
2. To view user or role system privileges (system privileges assigned directly to the user or role).
select * from dba_sys_privs;
select * from user_sys_privs;
3. View the permissions contained in the role (only the role owned by the logged-in user can be viewed)
sql>select * from role_sys_privs;
4. View user object permissions.
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
5. To view all roles.
select * from dba_roles;
6. To see the roles owned by a user or role: select
select * from dba_role_privs;
select * from user_role_privs;
以上、Oracleで読み取り専用アカウントを作成するための詳細な手順でした。Oracleで読み取り専用アカウントを作成するための詳細については、スクリプトハウスの他の関連記事を参照してください!
関連
-
オラクルインデックス概要
-
Oracleにリモート接続するためのPLSQLDeveloperログイン
-
オラクルのファジー・クエリーとその使い方
-
Navicat PremiumツールでOracleデータベースをMySQLに移行する
-
Oracle 11gのダウンロード、インストール、グラフィックチュートリアルを使用します。
-
[解決済み] エラー発生 - ORA-01858: 数値が期待される場所に非数値の文字が見つかりました。
-
[解決済み] Oracle 12c: TNS-12535: TNS:操作がタイムアウトしました。
-
[解決済み] ORA-30036: アンドゥ テーブルスペース 'UNDOTBS' でセグメントを 8 つ拡張できません。
-
[解決済み] PLS-00306:Oracle SP の呼び出しで引数の数または種類が誤っている。
-
[解決済み] 外部キーの追加エラー。ORA-02298: 検証できません - 親キーが見つかりませんでした
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Oracleデッドロック検出クエリとその処理
-
LogMinerによるOracle Databaseの同期マイグレーション
-
オラクル・ラックのケーススタディ
-
[解決済み] ORA-01461: LONG 値は、LONG 列への挿入にのみバインドできます-クエリー時に発生します。
-
[解決済み] ORA-01109: データベースが開きません」エラーを解決するにはどうすればよいですか?
-
[解決済み] エラー: ORA-01704: 文字列リテラルが長すぎる
-
[解決済み] ORA-12545: ターゲットホストまたはオブジェクトが Mac に存在しないため、接続に失敗しました - SQLPLUS
-
[解決済み] PLS-00302: component must be declared when it exists?」と表示されます。
-
[解決済み] ORA-01799: 列がサブクエリに外部結合されていない可能性があります。
-
[解決済み] PLS-00382: 式が不正です。