MySQL CURRENT_ROLE() 函数使用指南
MySQL CURRENT_ROLE()
函数返回一个表示当前会话当前激活的角色的字符串,多个角色使用逗号分隔。
CURRENT_ROLE()
语法
这里是 MySQL CURRENT_ROLE()
函数的语法:
CURRENT_ROLE()
参数
MySQL CURRENT_ROLE()
函数不需要任何参数。
返回值
CURRENT_ROLE()
函数返回一个 UTF8 字符串,它包含了当前会话的当前激活的角色。
CURRENT_ROLE()
示例
下面的示例展示了如何使用 CURRENT_ROLE()
函数当前的用户信息。
首先,让我们使用下面的语句创建一个用户 testuser
:
CREATE USER 'testuser'@'%' IDENTIFIED BY 'testuser123';
使用刚刚创建的用户登录 MySQL 服务器:
mysql --user=testuser --password=testuser123
使用下面的语句查看当前的角色:
SELECT CURRENT_ROLE();
+----------------+
| CURRENT_ROLE() |
+----------------+
| NONE |
+----------------+
这里, NONE
表示当前会话中并没有任何角色。
然后,让我们创建两个角色,并将两个角色赋予用户 testuser
:
CREATE ROLE test_role1, test_role2;
GRANT 'test_role1', 'test_role2' TO 'testuser'@'%';
SET DEFAULT ROLE ALL TO 'testuser'@'%';
重新登录 mysql,查看角色:
SELECT CURRENT_ROLE();
+-----------------------------------+
| CURRENT_ROLE() |
+-----------------------------------+
| `test_role1`@`%`,`test_role2`@`%` |
+-----------------------------------+
这里,返回了我们期望的结果。两个角色使用逗号分隔。
让我们使用下面的语句修改以下当前会话的角色为 test_role1
:
SET ROLE 'test_role1';
查看当前会话的角色:
SELECT CURRENT_ROLE();
+------------------+
| CURRENT_ROLE() |
+------------------+
| `test_role1`@`%` |
+------------------+
这里只返回了一个角色。因为刚刚我们使用 SET ROLE 'test_role1';
语句将当前会话的角色设置为了 test_role1
。