在 postgres 中创建新行时自动插入登录名

在 postgres 中创建新行时自动插入登录名

在 Postgres 10 中,是否可以在创建新行时自动插入登录角色的名称?

即我已经使用时间戳来跟踪行的创建日期。查看哪个用户创建了该行也很有用。

谢谢!

答案1

是的。只需设置列的默认值即可session_user。(这是一个伪变量,而不是函数调用)。

如果您想阻止用户覆盖它,您还应该确保GRANT根据每个列向表写入权限,而不是向整个表写入权限,并确保常规操作用户不是表所有者。

或者,也可以使用一个BEFORE INSERT OR UPDATE触发器来设置NEW.the_column := session_user

相关内容