我有几个人直接在某些系统中进行一些数据库查询。
我想将所有交互式/手动完成的查询记录到安全的系统日志服务器,或者如果失败,则使用psql二进制客户端完成所有查询。
我正在使用 Debian Jessie、PostgreSQL 9.4 和 9.1。
我怎样才能做到这一点?
设置配置变量的方法有多种,范围各异。
由于log_statement是仅限超级用户的设置,您可以排除所有客户端选项,并且服务器或数据库范围的设置对于您的情况来说可能过于广泛。
我相信这只会给您留下每个用户的选项,即:
ALTER USER interactive_user SET log_statement = 'all';
Run Code Online (Sandbox Code Playgroud)
或者如果它使事情更容易管理:
ALTER SYSTEM SET log_statement = 'all';
ALTER USER application_user SET log_statement = 'none';
Run Code Online (Sandbox Code Playgroud)
请注意,这些设置仅应用于连接,因此无法通过SET ROLE命令触发(或绕过)。
当然,这一切都假设您的应用程序和交互式用户不共享登录名,但我认为没有其他任何东西具有正确的粒度级别。
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |