【问题标题】:Retrieve username inside a trigger function在触发函数中检索用户名
【发布时间】:2013-04-02 14:26:33
【问题描述】:

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

【问题讨论】:

    标签: postgresql triggers


    【解决方案1】:

    您可以在postgresql.conf 中设置自定义 GUC。使用它在使用SET myapp_username 登录时存储应用程序用户名。使用current_setting(myapp_username)在触发器中访问它

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

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

    更多详情见Passing user id to PostgreSQL triggers

    【讨论】:

    • 再次感谢克雷格。很有帮助。
    • @shalin 我在另一个问题中对此进行了更详细的回复,以防您感兴趣。它包含演示代码、文档链接和更多说明。见stackoverflow.com/q/13172524/398670
    猜你喜欢
    • 2011-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多