3

在我们的数据库中,我们有一个login包含列usernamepassword. 如何在触发器函数中检索此用户名,以便也可以对其进行审核。user触发函数中的关键字检索 postgresql 用户名,我需要的是应用程序用户名。有什么建议么?

4

1 回答 1

3

您可以在postgresql.conf. 使用它在登录时存储应用程序用户名,使用SET myapp_username. 在触发器中访问它current_setting(myapp_username)

或者,在用户登录时创建一个TEMPORARY表,并在登录时INSERT将用户的应用程序用户名放入其中。SELECT它在需要的地方触发。

当然,这两者都要求用户不能直接运行自定义 SQL,但这通常是应用程序级身份验证的要求,就像您正在使用的那样。

将用户 ID 传递给 PostgreSQL 触发器中的更多详细信息

于 2012-10-25T12:06:31.560 回答