Postgres用户角色可以配置默认数据库和/或默认架构(除了“开箱即用”默认值)吗?

时间:2017-06-24 17:10:56

标签: postgresql

根据documentation dbname连接参数默认为用户名:

  

dbname

     

数据库名称。默认值与用户名相同。   在某些情况下,检查值是否为扩展格式;   有关这些内容的更多详细信息,请参见第31.1.1节。

我的第一个问题是:如果没有与用户名对应的数据库会发生什么 - 并且有没有办法定义除了与用户名同名的数据库以外的默认值? (如何实现这一目标?)

我的秒问题是:一旦连接到数据库,是否可以为用户定义默认架构? (如何实现这一目标?)

1 个答案:

答案 0 :(得分:0)

无法使用默认数据库设置用户,因为决定连接哪个数据库是在服务器首次连接之前建立的客户端数据库。

不是具有默认值的PostgreSQL服务器,它是libpq以及psql等客户端工具。这些工具检查PGDATABASE环境变量,因此您可以设置它,但您无法控制服务器端的行为。

可以为架构搜索路径设置默认值,如@a_horse_with_no_name备注,

ALTER ROLE rolename SET search_path = ....