跳到主要内容

CURRENT_USER

声明

CURRENT_USER()

说明

seekdb 通过用户名与主机名的组合定义登录账户,该函数返回登录账户名称的字符串,使用的字符集为 utf8mb4。

在登录 seekdb 时,seekdb 会按用户名与主机名进行匹配,例如,创建两个用户 testUser@11.162.%.%demoUser@11.162.%.%,则可以在 mysql.USER 表中查询到以下用户:

SELECT USER,HOST FROM mysql.USER ORDER BY USER,HOST;
+------------+----------------+
| user | host |
+------------+----------------+
...
| testUser | 11.162.%.% |
| demoUser | 11.162.%.% |
...
+------------+----------------+

在 seekdb 中,不同用户名与主机名的组合可以拥有不同的权限,在匹配时也会被识别为不同的用户。例如,您可以为 'testUser'@'11.162.%.%' 授予 SELECTUPDATE 权限,为 'demoUser'@'11.162.%.%' 授予 SELECT 权限。

-- 给用户 'testUser'@'11.162.%.%' 授予 UPDATE,SELECT 权限
GRANT UPDATE, SELECT ON *.* TO 'testUser'@'11.162.%.%' identified by '********';
-- 使用户相关权限可以及时刷新并生效
FLUSH PRIVILEGES;
-- 给用户 'demoUser'@'11.162.%.%' 授予 UPDATE,SELECT 权限
GRANT SELECT ON *.* TO 'demotUser'@'11.162.%.%' identified by '*******';
-- 使用户相关权限可以及时刷新并生效
FLUSH PRIVILEGES;

使用 testUser 用户登录到 seekdb 后,执行 CURRENT_USER()。结果如下所示。

mysql -h11.162.xxx.xxx -P2881 -utestUser -p********

SELECT CURRENT_USER();
+---------------------+
| CURRENT_USER() |
+---------------------+
| testUser@11.162.%.% |
+---------------------+
1 row in set (0.001 sec)

testUser'@'11.162.%.% 删除后,再次使用 testUser 用户连接 seekdb ,结果如下所示。

DROP USER DROP USER 'testUser'@'11.162.%.%';

mysql -h11.162.xxx.xxx -P2881 -utestUser -p*******

ERROR 1045 (42000): Access denied for user 'testUser'@'xxx.xxx.xxx.xxx' (using password: YES)

示例

查看当前数据库的登录用户。

示例:使用 demoUser 用户连接 seekdb,结果如下所示。

mysql -h11.162.xxx.xxx -P2881 -udemoUser -p********

+---------------------+
| CURRENT_USER() |
+---------------------+
| demoUser@11.162.%.% |
+---------------------+
1 row in set (0.000 sec)