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

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

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

# 查看角色

更新时间：2026-06-13 09:07:52

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/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-1000000005684772)。

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

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

```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-1000000005684669)。

## 查看当前激活角色的表级权限

查看用户在当前会话中被授予的已激活的角色的表级权限信息，以及这些角色被授予的其他角色的表级权限信息，语句如下：

```shell
obclient [information_schema]> SELECT * FROM information_schema.role_table_grants;

```

查询结果如下：

```shell
+---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+
| GRANTOR | GRANTOR_HOST | GRANTEE   | GRANTEE_HOST | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | PRIVILEGE_TYPE     | IS_GRANTABLE |
+---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+
| root    | %            | developer | %            | def           | test         | tbl2       | Drop,Update,Select | NO           |
+---------+--------------+-----------+--------------+---------------+--------------+------------+--------------------+--------------+
1 row in set

```

查询结果表示，`root` 用户将表 `test.tbl2` 的 `Drop`、`Update`、`Select` 等权限授予了角色 `developer`。

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

## 查看当前激活角色的列权限

查看用户在当前会话中被授予的已激活的角色的列权限信息，以及这些角色被授予的其他角色的列权限信息，语句如下：

```shell
obclient [information_schema]> SELECT * FROM information_schema.role_column_grants;

```

查询结果如下：

```shell
+---------+--------------+----------+--------------+---------------+--------------+------------+-------------+----------------+--------------+
| GRANTOR | GRANTOR_HOST | GRANTEE  | GRANTEE_HOST | TABLE_CATALOG | TABLE_SCHEMA | TABLE_NAME | COLUMN_NAME | PRIVILEGE_TYPE | IS_GRANTABLE |
+---------+--------------+----------+--------------+---------------+--------------+------------+-------------+----------------+--------------+
|    NULL |         NULL | employee | %            | def           | test          | tbl1      | c1          | Select,Insert  | NO           |
|    NULL |         NULL | employee | %            | def           | test          | tbl1      | c2          | Insert         | NO           |
+---------+--------------+----------+--------------+---------------+--------------+------------+-------------+----------------+--------------+
2 rows in set

```

上述查询结果中：

- 第一行表示 `employee` 角色对表 `test.tbl1` 中的列 `c1` 拥有 `Select`、`Insert` 权限。
 - 第二行表示 `employee` 角色对表 `test.tbl1` 中的列 `c2` 拥有 `Insert` 权限。

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

## 查看当前激活角色的例程权限

查看用户在当前会话中被授予的已激活的角色的例程权限信息，以及这些角色被授予的其他角色的例程权限信息，语句如下：

```shell
obclient [information_schema]> SELECT * FROM information_schema.role_routine_grants;

```

上述查询结果如下：

```shell
+---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+
| GRANTOR | GRANTOR_HOST | GRANTEE   | GRANTEE_HOST | SPECIFIC_CATALOG | SPECIFIC_SCHEMA | SPECIFIC_NAME | ROUTINE_CATALOG | ROUTINE_SCHEMA | ROUTINE_NAME | PRIVILEGE_TYPE        | IS_GRANTABLE |
+---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+
| root    | %            | developer | %            | def              | test            | add_numbers   | def             | test           | add_numbers  | Execute,Alter Routine | NO           |
+---------+--------------+-----------+--------------+------------------+-----------------+---------------+-----------------+----------------+--------------+-----------------------+--------------+
1 row in set

```

查询结果表示，`root` 用户将例程 `test.add_numbers` 的 `Execute`、`Alter Routine` 等权限授予了角色 `developer`。

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

## 相关文档

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

 上一篇 下一篇 ![有帮助](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) 咨询热线
