我有一个基于Qt库的应用程序,使用QPSQL驱动程序。
在PostgreSQL中,定义了一些用户角色(例如:管理员、操作员、用户)。我的应用程序会使用指定的用户创建与PostgreSQL服务器的连接。如何检查该用户的角色?
我有一个基于Qt库的应用程序,使用QPSQL驱动程序。
在PostgreSQL中,定义了一些用户角色(例如:管理员、操作员、用户)。我的应用程序会使用指定的用户创建与PostgreSQL服务器的连接。如何检查该用户的角色?
SELECT current_user; -- user name of current execution context
SELECT session_user; -- session user name
意思是,session_user
显示您连接的角色,而 current_user
则显示您当前操作的角色,例如在调用 SET role some_other_role;
后。
您可以使用以下查询来检查PostgreSQL用户权限:
SELECT * FROM pg_roles;
SECURITY DEFINER
的函数中知道一个角色设置,可以使用current_setting('role')
,这就像邮件列表中所看到的那样。 - mlt