2.6. 允许只读访问 History 数据库


要允许在不允许编辑的情况下访问历史记录数据库,您必须创建一个只读 PostgreSQL 用户,该用户可登录并从 ovirt_engine_history 数据库读取。这个过程必须在安装历史记录数据库的系统中执行。

过程 2.1. 允许只读访问 History 数据库

  1. 创建用户以对历史记录数据库具有只读访问权限:
    # psql -U postgres -c "CREATE ROLE [user name] WITH LOGIN ENCRYPTED PASSWORD '[password]';" -d ovirt_engine_history
    Copy to Clipboard Toggle word wrap
  2. 授予新创建的用户权限以连接到历史记录数据库:
    # psql -U postgres -c "GRANT CONNECT ON DATABASE ovirt_engine_history TO [user name];"
    Copy to Clipboard Toggle word wrap
  3. 授予新创建的用户使用 public 模式:
    # psql -U postgres -c "GRANT USAGE ON SCHEMA public TO [user name];" ovirt_engine_history
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  5. 使用您在上一步中创建的文件为新创建的用户授予权限:
    # psql -U postgres -f grant.sql ovirt_engine_history
    Copy to Clipboard Toggle word wrap
  6. 删除您用来为新创建的用户授予权限的文件:
    # rm grant.sql
    Copy to Clipboard Toggle word wrap
  7. 为新创建的用户将以下行添加到 /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
    
    Copy to Clipboard Toggle word wrap
  8. 重新载入 PostgreSQL 服务:
    # systemctl reload postgresql
    
    Copy to Clipboard Toggle word wrap
  9. 您可以测试只读用户的访问权限:
    # psql -U [user name] ovirt_engine_history -h localhost
    Password for user [user name]: 
    psql (9.2.23)
    Type "help" for help.
    
    ovirt_engine_history=>
    Copy to Clipboard Toggle word wrap
  10. 要退出 ovirt_engine_history 数据库,请输入 \q
对于 ovirt_engine_history 数据库中的表格和视图,只读用户的 SELECT 语句会成功,而修改会失败。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat