2.6. 履歴データベースへの読み取り専用アクセスの許可

編集を許可せずに履歴データベースへのアクセスを許可するには、ovirt_engine_history データベースにログインしてデータを読み取ることができる、読み取り専用の PostgreSQL ユーザーを作成する必要があります。以下に記載する手順は、履歴データベースがインストールされているシステムで実行する必要があります。

手順2.1 履歴データベースへの読み取り専用アクセスの許可

  1. 履歴データベースへの読み取り専用アクセスを許可するユーザーを作成します。
    # psql -U postgres -c "CREATE ROLE [user name] WITH LOGIN ENCRYPTED PASSWORD '[password]';" -d ovirt_engine_history
  2. 新規作成したユーザーに、履歴データベースに接続するためのパーミッションを付与します。
    # psql -U postgres -c "GRANT CONNECT ON DATABASE ovirt_engine_history TO [user name];"
  3. 新規作成したユーザーに public スキーマの使用を許可します。
    # psql -U postgres -c "GRANT USAGE ON SCHEMA public TO [user name];" ovirt_engine_history
  4. 新規作成したユーザーに許可する残りのパーミッションを生成して、ファイルに保存します。
    # 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
  5. 前のステップで作成したファイルを使用して、新規作成したユーザーにパーミッションを付与します。
    # psql -U postgres -f grant.sql ovirt_engine_history
  6. 新規作成したユーザーにパーミッションを付与するのに使用したファイルを削除します。
    # rm grant.sql
新規作成したユーザーとして以下のコマンドを実行すると ovirt_engine_history データベースにアクセスできるようになりました。
# psql -U [user name] ovirt_engine_history
ovirt_engine_history データベース内のテーブルおよびビューに対する SELECT ステートメントは成功しますが、変更は失敗します。