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

Ale*_*rff 11 postgresql permissions qt database-design

我有一些基于Qt库和使用QPSQL驱动程序的应用程序.
在PostreSQL中定义了一些用户角色(例如:admin,operator,user).我的应用程序在指定用户下创建与postgres服务器的连接.如何查看用户角色?

Erw*_*ter 30

每个文件:

SELECT current_user;  -- user name of current execution context
SELECT session_user;  -- session user name
Run Code Online (Sandbox Code Playgroud)

这意味着,session_user 显示您连接的角色,并current_user显示您当前正在操作的角色,例如在调用之后SET role some_other_role;.

  • 为了完整起见,如果您想使用“SECURITY DEFINER”了解函数内的设置角色,请使用“current_setting('role')”,如[可以在邮件列表中看到](https://www .postgresql.org/message-id/13906.1141711109%40sss.pgh.pa.us) (3认同)

han*_*ank 5

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

SELECT * FROM pg_roles;
Run Code Online (Sandbox Code Playgroud)