我需要将视图的所有者修改为当前登录用户
例如:
create view test as select * from test where owner = current_user //like this
我可以这样做吗?
答案 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