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

时间:2017-11-28 17:33:55

标签: postgresql installation puppet

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

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

... 
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:'错误:关系“所有”不存在 “

我检查了doc,但没有指定如何为所有表应用权限。

  

table:指定您授予访问权限的表。

postgresql::server::table_grant

1 个答案:

答案 0 :(得分:2)

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