微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何篡改 PostgreSQL 系统数据

方法可能带来严重后果,请务必谨慎使用。

这种操作能力的出处来自 initdb,具体请看 initdb.c 源代码

staticconstchar*backend_options="--single-F-O-csearch_path=pg_catalog-cexit_on_error=true";

在清楚自己要做什么的前提下,它可能会带来一些福利,否则恐怕只有老天爷知道会发生什么,请务必谨慎使用。

1、如果我们试图修改 pg_catalog,会收到如下提示

ERROR:permissiondeniedtocreate"pg_catalog.xxx"
DETAIL:Systemcatalogmodificationsarecurrentlydisallowed.

2、进入具有修改数据库系统表的命令行

./postgres--single-F-O-csearch_path=pg_catalog-cexit_on_error=true-D../dataflying

这里search_path=pg_catalog 是操作的目标 namespace(也就是外在表现的 schema 自行查阅文档),这就是文档中的search_path 参数。

exit_on_error=true 遇到错误立即退出

最后一个数据库

3、创建 / 修改 / 操作 某个对象

4、退出

如果我们设置了exit_on_error=true,可以随便输入一个出错的命令即可结束。

最安全的办法 Ctrl + D


--------------------------------------------神州飞象(北京)数据科技有限公司我们的力量源自最先进的开源数据库Postgresql[email protected]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐