Postgresql和Vault。错误:关系示例的权限被拒绝
我正在使用vault(v0.10.1)在带有Ubuntu 18.04的计算机上为postgresql(9.5.13)生成动态凭据,但使用生成的凭据,我可以登录并查看表(\dt),但无法从中选择值:Postgresql和Vault。错误:关系示例的权限被拒绝,postgresql,ubuntu,psql,hashicorp-vault,Postgresql,Ubuntu,Psql,Hashicorp Vault,我正在使用vault(v0.10.1)在带有Ubuntu 18.04的计算机上为postgresql(9.5.13)生成动态凭据,但使用生成的凭据,我可以登录并查看表(\dt),但无法从中选择值: pgdbdemo=> select * from example; ERROR: permission denied for relation example 如果我使用postgres用户works手动授予对postgresql的权限,然后执行select pgdb
pgdbdemo=> select * from example;
ERROR: permission denied for relation example
如果我使用postgres用户works手动授予对postgresql的权限,然后执行select
pgdbdemo=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO "v-userpass-readonly-0tqxxxxxxxxxxxxxxxxx-1xxxxxxxxx9";
GRANT
但我希望它们与以下vault角色集成,该角色似乎忽略了GRANT语句,尽管使用正确的TTL创建凭据,等等:
vault write database/roles/readonly \
db_name="pgdbdemo" \
creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; \
GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
default_ttl="10m" \
max_ttl="24h"
我的Vault数据库配置:
vault write database/config/pgdbdemo \
plugin_name="postgresql-database-plugin" \
allowed_roles="readonly" \
connection_url="postgresql://postgres:pgpass@127.0.0.1:5432?sslmode=disable" \
如何使用这些动态凭据获得select?您应该在配置中指定要连接的数据库:
connection\u url=“postgresql://postgres:pgpass@127.0.0.1:5432/pgdbdemo?sslmode=disable“
否则,根据,它将以与用户名相同的名称连接到数据库,在本例中,
postgres
您迄今为止所做的似乎是正确的;您在配置中分配给Vault的postgres用户已启用授予权限?应该是,该用户是“postgres”,我已在配置的连接url部分使用过它。请向我们展示您的秘密引擎配置示例(database/config/)?Vault write database/config/pgdbdemo\plugin\u name=“postgresql数据库插件”\allowed\u roles=“readonly”\connection\u url=“postgresql://postgres:pgpass@127.0.0.1:5432?sslmode=disable“\就是这样!谢谢!