如何篡改 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 --------------------------------------------神州飞象(北京)数据科技有限公司我们的力量源自最先进的开源数据库PostgreSQLzongliang.quan@postgresdata.com (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |