我想问一下,如果某些条件不满足,是否可以处理 drop table 命令并中断它?
问问题
267 次
1 回答
2
我猜你想问:
如何
DROP TABLE
根据某些应用程序定义的条件防止成功
如果是这样,您唯一的内置选项是使用权限。请参阅PostgreSQL 手册中的GRANT
和REVOKE
。
如果你想要更复杂的东西,你可以写一个ProcessUtility_hook
,但这需要你用 C 写一个扩展,编译并加载到服务器中。
编写 aProcessUtility_hook
实际上并不太难,但 PostgreSQL 9.2 和 9.3 定义之间存在差异,这意味着您需要单独的扩展。这是一个基本示例:https ://github.com/ringerc/scrapcode/tree/master/postgresql/example_processutility_hook这是一个 ProcessUtility 钩子,它实际上做了一些有用的事情:https ://github.com/ringerc/postgres/blob/bdr -reject-unsafe-commands/contrib/bdr/bdr_commandfilter.c
如果您没有 C 编程经验并且没有时间,那么 aProcessUtility_hook
不适合您。
另请参阅:如何防止表被删除?
于 2013-07-02T07:41:44.507 回答