在 Postgres 10 中,是否可以在创建新行时自动插入登录角色的名称?
即我已经使用时间戳来跟踪行的创建日期。查看哪个用户创建了该行也很有用。
谢谢!
答案1
是的。只需设置列的默认值即可session_user
。(这是一个伪变量,而不是函数调用)。
如果您想阻止用户覆盖它,您还应该确保GRANT
根据每个列向表写入权限,而不是向整个表写入权限,并确保常规操作用户不是表所有者。
或者,也可以使用一个BEFORE INSERT OR UPDATE
触发器来设置NEW.the_column := session_user
。