我正在使用Ubuntu 18.04上的vault (v0.10.1)为postgresql (9.5.13)生成动态凭据,但是使用生成的凭据我能够登录并查看表(\dt),但我无法从中选择值。
如果我使用postgres用户手动授予权限,然后执行select命令,那么就可以正常工作。
如何使用这些动态凭据使选择器正常工作?
pgdbdemo=> select * from example;
ERROR: permission denied for relation example
如果我使用postgres用户手动授予权限,然后执行select命令,那么就可以正常工作。
pgdbdemo=# GRANT SELECT ON ALL TABLES IN SCHEMA public TO "v-userpass-readonly-0tqxxxxxxxxxxxxxxxxx-1xxxxxxxxx9";
GRANT
但是我希望它们能够与以下的保险库角色集成,尽管创建了具有正确TTL的凭据,但似乎忽略了GRANT语句:
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" \
如何使用这些动态凭据使选择器正常工作?
plugin_name="postgresql-database-plugin"
allowed_roles="readonly"
connection_url="postgresql://postgres:pgpass@127.0.0.1:5432?sslmode=disable" \ 将以上代码翻译为中文: 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" \ - Dtrms