postgresql - 如何使用 puppet 定义具有 SELECT 权限的用户?

标签 postgresql installation puppet

我想在postgres中创建一个只能在当前数据库的所有表中进行SELECT的用户。 如何在 puppet 中指定 ALL 表?

这里是我的 puppet 文件的摘录:

... 
postgresql::server::database_grant { 'PnBP':
  privilege => 'CREATE',
  db        => 'db',
  role      => 'role',
}

postgresql::server::table_grant { 'SELECT':
  privilege => 'SELECT',
  table     => 'ALL',
  db        => 'db',
  role      => 'role',
}
...

但是当我指定单词 ALL 时,它不起作用。 这里的错误:

错误:/Stage[main]/Main/Node[default]/Postgresql::Server::Table_grant[PnBP]/Postgresql::Server::Grant[table:PnBP]/Postgresql_psql[grant:table :PnBP]: 无法评估:评估“除非”子句时出错,返回 pid 30443 退出 1:“错误:关系“全部”不存在 '

我查看了文档,但它没有指定如何为所有表应用权限。

table : Specifies the table to which you are granting access.

postgresql::server::table_grant

最佳答案

Postgresql 的 Puppet 文档描述了一个 postgresql::server::grant 选项,它看起来比假定单个表的 table_grant 更灵活。

看起来是这样的:

postgresql::server::grant{ 'SELECT':
  object_type => 'ALL TABLES IN SCHEMA',
  object_name => 'public',
  privilege => 'SELECT',
  db        => 'db',
  role      => 'role',
}

https://github.com/puppetlabs/puppetlabs-postgresql#postgresqlservergrant

关于postgresql - 如何使用 puppet 定义具有 SELECT 权限的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47537649/

相关文章:

Puppet,如何使用exec返回值作为触发器?

sql - 模式交换支持 Go GORM

sql - 在 Postgres 中,是否可以插入一个常量与 SELECT 的结果相结合?

installation - Windows 安装程序包的问题

python - ubuntu 14.04 如何从 13.3 升级到 scipy 14.0

ubuntu - Vagrant 不运行 puppet

linux - 资源属性可以依赖于文件存在吗?

postgresql - postgres在时间列上选择查询生成输出错误

postgresql - SymmetricDS pk 替代方案

android - NativeScript:设备上是否有针对自己应用程序的 "on install"的 Hook ?