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

How to define a user with SELECT privileges with puppet?

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

这是我的人偶文件的摘录:

... 
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[默认]/Postgresql::Server::Table_grant[PnBP]/Postgresql::Server::Grant[table:PnBP]/Postgresql_psql[grant:table:PnBP]: 无法评估:评估 'unless' 子句时出错,返回 pid 30443 exit 1: 'ERROR: relation "all"不存在 '

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

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

postgresql::server::table_grant

Postgresql 的 Puppet 文档描述了一个 postgresql::server::grant 选项,它看起来比假设单个 table.

的 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