如何默认启用行级安全性?

时间:2016-05-01 08:49:05

标签: postgresql postgresql-9.5

有人可能忘记启用它,所以我宁愿为不需要它的表明确禁用它。

2 个答案:

答案 0 :(得分:3)

默认情况下,无法启用或禁用行级安全性。你必须ALTER TABLE ... ENABLE ROW LEVEL SECURITY。但是,我不知道如何忘记它,因为表最初只能由其所有者访问。如果您随后使用CREATE POLICY创建行安全策略,则仍然无法访问,因此您可能知道自己做错了。

您可以问自己为什么要开始ALTER TABLE ... ENABLE ROW LEVEL SECURITY,但这是postgresql-devel邮件列表的问题,而不是SO。

答案 1 :(得分:2)

我认为您可以默认通过创建event trigger.

启用它

我还没试过这个,但这应该足以让你开始。

在这种情况下,您实际上有一个在任何CREATE TABLE之后运行的函数,并启用行级安全性。

PostgreSQL 9.5的PostgreSQL文档位于http://www.postgresql.org/docs/9.5/static/functions-event-triggers.html,可用于获取表信息的函数。这看起来很可行。