我想在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:指定您授予访问权限的表。
答案 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