【问题标题】:Prevent drop table if conditions are not met如果条件不满足,防止删除表
【发布时间】:2013-07-02 07:33:01
【问题描述】:

请问是否可以处理drop table命令,如果某些条件不满足就中断它?

【问题讨论】:

  • 如果您以后需要帮助,请尝试写一个更详细的问题。你让读者猜测得越多,他们就越有可能浪费时间和你的回答与你认为你问的问题不同的东西。另外,您已经尝试过、研究过什么等?最后,在所有问题中始终包含您的确切 PostgreSQL 版本

标签: postgresql drop-table


【解决方案1】:

我猜你想问的是:

如何根据某些应用程序定义的条件防止DROP TABLE 成功

如果是这样,您唯一的内置选项是使用权限。请参阅 PostgreSQL 手册中的 GRANTREVOKE

如果你想要更复杂的东西,你可以写一个ProcessUtility_hook,但这需要你用C编写一个扩展,编译并加载到服务器中。

编写ProcessUtility_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 编程经验并且没有时间,ProcessUtility_hook 不适合您。

另见:How to prevent table from being dropped?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    相关资源
    最近更新 更多