七月 14, 2024
摘要:在本教程中,您将学习如何使用 PostgreSQL 的CURRENT_USER
函数,返回当前登录的数据库用户的名称。
目录
PostgreSQL CURRENT_USER 函数介绍
PostgreSQL CURRENT_USER
是一个函数,用于返回当前登录的数据库用户的名称。
下面是CURRENT_USER
函数的语法:
CURRENT_USER
该函数返回会话中当前有效用户的名称。
换言之,如果使用SET ROLE
语句将当前用户的角色更改为新用户的角色,则CURRENT_USER
将反映新角色。
在 PostgreSQL 中,具有
LOGIN
属性的角色代表一个用户。因此,我们可以互换地使用术语“角色”和“用户”。
要获取连接到会话的原始用户,请使用SESSION_USER
函数。
PostgreSQL CURRENT_USER 函数示例
首先,在 Windows 上打开命令提示符,或在类 Unix 系统上打开终端,并使用 psql 连接到 PostgreSQL 服务器:
psql -U postgres
第二步,使用CURRENT_USER
函数获取当前登录的用户:
SELECT CURRENT_USER;
输出:
current_user
--------------
postgres
(1 row)
第三步,创建一个新角色,名为bob
:
CREATE ROLE bob WITH LOGIN PASSWORD 'SecurePass1';
第四步,将当前用户的角色修改为bob
:
SET ROLE bob;
第五步,执行CURRENT_USER
函数:
SELECT CURRENT_USER;
它返回的是bob
:
current_user
--------------
bob
(1 row)
第六步,使用SESSION_USER
函数找回连接到会话的原始用户:
SELECT SESSION_USER;
输出:
session_user
--------------
postgres
(1 row)
SESSION_USER
函数返回的是postgres
,而不是bob
。
总结
- 使用
CURRENT_USER
函数返回会话中的当前有效用户。 - 使用
SESSION_USER
函数返回连接到会话的原始用户。