如果条件不满足,则防止丢弃表

问题描述:

我想问一下,如果有可能处理掉表命令并在不满足某些条件的情况下处理它,是否可以处理?如果条件不满足,则防止丢弃表

+1

请尝试,如果你想在未来帮助写的比较详细的问题。读者猜测的越多,他们就越有可能浪费时间,而你的回答则与你所想的不同。另外,**你已经尝试**,研究等?最后,*在所有问题中始终包含您的精确PostgreSQL版本*。 –

我要去猜测,您试图问:

如何防止DROP TABLE得手基于特定应用程序定义的条件

如果是这样,你只建-in选项是使用权限。请参阅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?