2.6. 履歴データベースへの読み取り専用アクセスの許可
編集を許可せずに履歴データベースへのアクセスを許可するには、
ovirt_engine_history データベースにログインして読み取ることができる読み取り専用の PostgreSQL ユーザーを作成する必要があります。この手順は、履歴データベースがインストールされているシステムで実行する必要があります。
手順2.1 履歴データベースへの読み取り専用アクセスの許可
- 履歴データベースへの読み取り専用アクセスを許可するユーザーを作成します。
psql -U postgres -c "CREATE ROLE [user name] WITH LOGIN ENCRYPTED PASSWORD '[password]';" -d ovirt_engine_history
# psql -U postgres -c "CREATE ROLE [user name] WITH LOGIN ENCRYPTED PASSWORD '[password]';" -d ovirt_engine_historyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しく作成されたユーザーに、履歴データベースに接続するための権限を付与します。
psql -U postgres -c "GRANT CONNECT ON DATABASE ovirt_engine_history TO [user name];"
# psql -U postgres -c "GRANT CONNECT ON DATABASE ovirt_engine_history TO [user name];"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しく作成されたユーザーに
publicスキーマの使用を許可します。psql -U postgres -c "GRANT USAGE ON SCHEMA public TO [user name];" ovirt_engine_history
# psql -U postgres -c "GRANT USAGE ON SCHEMA public TO [user name];" ovirt_engine_historyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しく作成されたユーザーに付与される残りの権限を生成し、ファイルに保存します。
psql -U postgres -c "SELECT 'GRANT SELECT ON ' || relname || ' TO [user name];' FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace WHERE nspname = 'public' AND relkind IN ('r', 'v');" --pset=tuples_only=on ovirt_engine_history > grant.sql# psql -U postgres -c "SELECT 'GRANT SELECT ON ' || relname || ' TO [user name];' FROM pg_class JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace WHERE nspname = 'public' AND relkind IN ('r', 'v');" --pset=tuples_only=on ovirt_engine_history > grant.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 前の手順で作成したファイルを使用して、新たに作成したユーザーに権限を付与します。
psql -U postgres -f grant.sql ovirt_engine_history
# psql -U postgres -f grant.sql ovirt_engine_historyCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しく作成されたユーザーに権限を付与するために使用したファイルを削除します。
rm grant.sql
# rm grant.sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 新しく作成されたユーザーの以下の行を
/var/lib/pgsql/data/pg_hba.confファイルに追加します。# TYPE DATABASE USER ADDRESS METHOD host ovirt_engine_history [user name] 0.0.0.0/0 md5 host ovirt_engine_history [user name] ::0/0 md5
# TYPE DATABASE USER ADDRESS METHOD host ovirt_engine_history [user name] 0.0.0.0/0 md5 host ovirt_engine_history [user name] ::0/0 md5Copy to Clipboard Copied! Toggle word wrap Toggle overflow - PostgreSQL サービスをリロードします。
systemctl reload postgresql
# systemctl reload postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 読み取り専用ユーザーのアクセス権限をテストできます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ovirt_engine_historyデータベースを終了するには、\qを入力します。
ovirt_engine_history データベースのテーブルおよびビューに対する読み取り専用ユーザーの SELECT ステートメントは成功しますが、変更は失敗します。