除了在数据库或者角色层面上设置全局默认值或者进行覆盖,还可以通过shell 工具把设置传递给TeleDB。服务器和libpq客户端库都能通过 shell 接受参数值。
- 在服务器启动期间,可以通过-c命令行参数把参数设置传递给postgres命令。例如: postgres -c log_connections=yes -c log_destination='syslog'
这种方式提供的设置会覆盖通过postgresql.conf或者 ALTER SYSTEM提供的设置,因此除了重启服务器之外无法从全局上改变它们。
- 当通过libpq启动一个客户端会话时,可以使用PGOPTIONS 环境变量指定参数设置。这种方式建立的设置构成了会话生存期间的默认值,但是不会影响其他的会话。由于历史原因,PGOPTIONS的格式和启动 postgres命令时用到的相似,特别是-c标志必须被指定。 例如:
env PGOPTIONS="-c geqo=off -c statement_timeout=5min"
通过shell 或者其他方式,其他客户端和库可能提供它们自己的机制,以便允许用户在不直接使用SQL命令的前提下修改会话设置。