如何从Qt应用程序中检查当前PostgreSQL用户的角色?

29

我有一个基于Qt库的应用程序,使用QPSQL驱动程序。
在PostgreSQL中,定义了一些用户角色(例如:管理员、操作员、用户)。我的应用程序会使用指定的用户创建与PostgreSQL服务器的连接。如何检查该用户的角色?

2个回答

65

手册:

SELECT current_user;  -- user name of current execution context
SELECT session_user;  -- session user name

意思是,session_user 显示您连接的角色,而 current_user 则显示您当前操作的角色,例如在调用 SET role some_other_role; 后。


6
为了完整起见,如果你想要在一个具有SECURITY DEFINER的函数中知道一个角色设置,可以使用current_setting('role'),这就像邮件列表中所看到的那样。 - mlt

10
您可以使用以下查询来查看PostgreSQL用户权限:

您可以使用以下查询来检查PostgreSQL用户权限:

SELECT * FROM pg_roles;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接