主要问题是我想审核用户行为(使用触发器),但我们当前正在使用与数据库的连接池,因此不要在db中直接使用他们的用户名/ id。
据我所知,MSSQL Server中有一个EXECUTE AS LOGIN功能。在MySQL或Postgres中有类似的东西吗?
除了审核ORM而不是数据库之外,我还有其他选择吗?
谢谢!
答案 0 :(得分:1)
在PostgreSQL中,您可以使用SET ROLE
或SET SESSION AUTHORIZATION
,但您必须已在数据库中定义了角色。
您可以选择哪一种更适合您的需求。
答案 1 :(得分:1)
除了SET ROLE之外,还有另一个可能有用的选项SET APPLICATION_NAME。这不一定是应用程序 - 只要您的应用程序的用户名符合64个字符,它就非常有用。