修改PostgreSQL视图所有者动态



我需要修改视图的所有者作为当前记录的用户

例如:

create view test as select * from test where owner = current_user //like this 

我可以这样做吗?

默认情况下,视图的所有者将是当前登录的用户,只有在希望所有者是当前登录的用户以外的其他人时,才必须对其进行修改。

要修改所有者,您可以使用

ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }来自https://www.postgresql.org/docs/current/static/sql-alterview.html

如果您的意图是应用行级安全性,则应将其应用于基础表,而不是视图,该表应适当地将返回的行限制为视图。

CREATE POLICY name ON table_name [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ] [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ] [ USING ( using_expression ) ] [ WITH CHECK ( check_expression ) ]

https://www.postgresql.org/docs/current/static/sql-createpolicy.html

最新更新