动态创建的用户无法查询包含大对象的表,因为它最初不是创建的。
我有一个跨2 个实例部署到 AWS 的 Java Atom Hopper 应用程序,这两个实例都使用托管在 RDS 中的Postgres 9.5.2数据库。
数据库凭据存储在Vault 中,它为 Postgres 中的数据库生成新的登录名和密码。此用户是使用以下权限创建的。
CREATE ROLE "{{name}}" WITH INHERIT LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}';GRANT ALL PRIVILEGES on DATABASE "DATABASE_NAME" to "{{name}}";GRANT databaserole to "{{name}}";
Run Code Online (Sandbox Code Playgroud)
这意味着每次 Java 应用程序启动时,它都会向Vault发送请求,以获取新的用户名和密码。
eg. username: token-1234-5678
=> \du
Role name | Attributes | Member of
-----------------+-----------------------------------------------+----------------
token-1234-5678 | Password valid until 2016-09-11 09:57:14+00 | {databaserole} (java instance 1) …
Run Code Online (Sandbox Code Playgroud)