postgresql – 给定数据库和用户的search_path是什么?

postgresql – 给定数据库和用户的search_path是什么?,第1张

概述我可以看到当前的search_path: show search_path ; 我可以设置当前会话的search_path: set search_path = "$user", public, postgis; 同样,我可以使用以下命令永久设置给定数据库的search_path: alter database mydb set search_path = "$user", public, pos 我可以看到当前的search_path:
show search_path ;

我可以设置当前会话的search_path:

set search_path = "$user",public,postgis;

同样,我可以使用以下命令永久设置给定数据库的search_path:

alter database mydb set search_path = "$user",postgis ;

我可以使用以下内容为给定角色(用户)永久设置search_path:

alter role johnny set search_path = "$user",postgis ;

但我想知道如何在更改之前确定数据库和角色设置(相对于search_path)?

您可以在目录表 pg_db_role_setting中找到角色和数据库的配置设置.

此查询检索给定角色或数据库的任何设置:

SELECT r.rolname,d.datname,rs.setconfigFROM   pg_db_role_setting rsleft   JOIN pg_roles      r ON r.oID = rs.setroleleft   JOIN pg_database   d ON d.oID = rs.setdatabaseWHERE  r.rolname = 'myrole' OR d.datname = 'mydb';

如果未设置任何内容,则下一个较低实例将确定search_path的默认状态,在这种情况下为postgresql.conf或在服务器启动时为命令行选项.有关:

> How does the search_path influence identifier resolution and the “current schema”

要取消设置角色或数据库的任何设置 – 此特定示例中的search_path:

ALTER RolE myrole reset search_path;

要么:

ALTER DATABASE mydb reset search_path;

要么

ALTER RolE myrole in DATABASE mydb reset search_path;

切勿手动 *** 作系统目录(pg_catalog.*)中的数据.按照ALTER ROLEALTER DATABASE手册中的说明使用DDL命令.实际上,reset命令从pg_db_role_setting中删除一行,允许基本设置再次生效.我不会称之为复杂.

总结

以上是内存溢出为你收集整理的postgresql – 给定数据库和用户的search_path是什么?全部内容,希望文章能够帮你解决postgresql – 给定数据库和用户的search_path是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1168286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存