---
title: "查看角色 - OceanBase 数据库 V4.3.1 | OceanBase 文档中心"
description: 查看角色 您可以查看用户激活的角色有哪些，角色中又有哪些角色，还可以查看角色中有哪些权限。 查看用户被授予的角色和权限 注意 用户可以始终使用直接被授予的权限，但不一定可以使用通过角色间接获得的权限，用户只能使用在当前会话中被激活的角色的权限。 查看用户 test1 被授予的角色和权限，语句如下： obclient …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.1

# 查看角色

更新时间：2026-04-10 11:58:01

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.1/zh-CN/600.manage/500.security-and-permissions/300.access-control/200.user-and-permission/200.permission-of-mysql-mode/340.role-management-of-mysql-mode/600.view-roles-of-mysql-mode.md)  

您可以查看用户激活的角色有哪些，角色中又有哪些角色，还可以查看角色中有哪些权限。

## 查看用户被授予的角色和权限

#### 注意

用户可以始终使用直接被授予的权限，但不一定可以使用通过角色间接获得的权限，用户只能使用在当前会话中被激活的角色的权限。

查看用户 `test1` 被授予的角色和权限，语句如下：

```shell
obclient [oceanbase]> SHOW GRANTS FOR test1;

```

查询结果如下：

```shell
+-------------------------------------------------+
| Grants for test1@%                              |
+-------------------------------------------------+
| GRANT USAGE ON *.* TO 'test1'                   |
| GRANT `employee`@`%`,`role1`@`%` TO `test1`@`%` |
+-------------------------------------------------+
2 rows in set

```

对于用户被授予的角色，如果希望进一步展示角色所包含的权限，可以添加一个 `USING` 子句，指定展示该角色所包含的权限。

```shell
obclient [oceanbase]> SHOW GRANTS FOR test1 USING role1;

```

结果如下：

```shell
+-------------------------------------------------+
| Grants for test1@%                              |
+-------------------------------------------------+
| GRANT ALTER SYSTEM ON *.* TO 'test1'            |
| GRANT UPDATE, SELECT ON `dbtest`.* TO 'test1'   |
| GRANT `employee`@`%`,`role1`@`%` TO `test1`@`%` |
+-------------------------------------------------+
3 rows in set

```

## 查看角色被授予的角色或权限

查看角色 `role1` 被授予的角色或权限。

```shell
obclient [oceanbase]> SHOW GRANTS FOR role1;

```

查询结果如下：

```shell
+-------------------------------------------------------+
| Grants for role1@%                                    |
+-------------------------------------------------------+
| GRANT ALTER SYSTEM ON *.* TO 'role1'                  |
| GRANT SELECT ON `dbtest`.* TO 'role1'                 |
| GRANT SELECT ON `test1`.`tbl1` TO 'role1'             |
| GRANT `employee`@`%` TO `role1`@`%` WITH ADMIN OPTION |
+-------------------------------------------------------+
4 rows in set

```

## 查看用户登录时默认激活的角色

通过 Global 变量 `activate_all_roles_on_login` 启用了登录时自动激活用户被授予的所有角色，或者通过 `SET DEFAULT ROLE` 语句或 `ALTER USER` 语句设置了登录时默认激活的角色后，可以查询 `mysql.default_roles` 视图，确认用户登录默认激活的角色是否设置正确。

```shell
obclient [oceanbase]> SELECT * FROM mysql.default_roles;

```

结果如下：

```shell
+------+-------+-------------------+-------------------+
| HOST | USER  | DEFAULT_ROLE_HOST | DEFAULT_ROLE_USER |
+------+-------+-------------------+-------------------+
| %    | test1 | %                 | role1             |
| %    | test1 | %                 | employee          |
+------+-------+-------------------+-------------------+
2 rows in set

```

有关视图 `mysql.default_roles` 各字段的详细说明，请参见 [mysql.default_roles](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000820552)。

## 查看当前会话中被激活的角色

查看当前用户在当前会话中被激活的角色，语句如下：

```shell
obclient [oceanbase]> SELECT current_role();

```

查询结果如下：

```shell
+--------------------------------+
| current_role()                 |
+--------------------------------+
| `developer`@`%`,`employee`@`%` |
+--------------------------------+
1 row in set

```

如果查询结果为 `NONE`，则表示当前用户没有处于激活状态的角色，只有处于激活状态的角色的权限才能被用户使用。

## 查看角色与用户之间的授权关系

```shell
obclient [oceanbase]> SELECT * FROM mysql.role_edges;

```

查询结果如下：

```shell
+-----------+-----------+---------+---------+-------------------+
| FROM_HOST | FROM_USER | TO_HOST | TO_USER | WITH_ADMIN_OPTION |
+-----------+-----------+---------+---------+-------------------+
| %         | employee  | %       | test2   | Y                 |
| %         | employee  | %       | role1   | Y                 |
| %         | developer | %       | test1   | N                 |
+-----------+-----------+---------+---------+-------------------+
3 rows in set

```

上述查询结果中：

- 第一行表示 `employee` 角色将其所有权限授予了 `test2` 用户，同时允许 `test2` 用户将该角色转授给其他用户或角色。
 - 第二行表示 `employee` 角色将其所有权限授予了 `role1` 角色，同时允许 `role1` 角色将该角色转授给其他用户或角色。
 - 第三行表示 `developer` 角色将其所有权限授予了 `test1` 用户，并且 `test1` 用户不能将该角色转授给其他用户或角色。

有关视图 `mysql.role_edges` 各字段的详细说明，请参见 [mysql.role_edges](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000820670)。

## 相关文档

- [向角色中添加权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000822106)
 - [将角色授予用户或角色](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000822103)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
