动态修改PostgreSQL查看所有者

时间:2017-06-07 06:26:07

标签: postgresql

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

例如:

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

我可以这样做吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,View的所有者将是当前登录的用户,如果您希望所有者是当前登录用户以外的其他人,则只需修改它。

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

来自https://www.postgresql.org/docs/current/static/sql-alterview.html

ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

如果您打算应用行级安全性,那么您应该将它应用于基础表,而不是视图,这应该将返回的行适当地限制到视图。

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