权限管理操作

管理租户

  • 前提条件:拥有集群管理员(默认账户为 root)才可以进行租户管理。

有关 root 账号对应的角色和权限如下表所示:

用户名解释所拥有的角色所拥有的权限描述
root集群管理员MOADMIN创建、编辑、删除租户集群创建后自动生成并授予
root系统租户管理员MOADMIN管理系统租户下的所有资源,包含用户、角色、数据库/表/视图,授权管理集群创建后自动生成并授予

创建租户

SQL 语法

  1. create account <account_name> admin_name='<user_name>' identified by '<password>';

参数解释

参数参数解释
新建租户的名称
新建租户的管理员用户名,其会被自动授予租户的最高权限角色,即 ACCOUNTADMIN
新建的租户管理员密码

更多信息,参见 CREATE ACCOUNT

查看租户

SQL 语法

  1. select * from mo_catalog.mo_account;

删除租户

SQL 语法

  1. drop account if exists <account_name>;

参数解释

参数参数解释
需要删除的租户名称

Note

删除租户后则无法恢复,包括租户账号下的所有数据,请谨慎使用。

更多信息,参见 DROP ACCOUNT

管理用户

创建用户

  • 前提条件:拥有 CREATE USER 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:在当前租户中创建一个用户的用户名和密码。

SQL 语法

  1. create user <user_name> identified by '<password>';

参数解释

参数参数解释
新建用户的名称
新建的用户密码

更多信息,参见 CREATE USER

查看用户

  • 前提条件:拥有查看用户的权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:查看当前租户下所有的用户。

SQL 语法

  1. select * from mo_catalog.mo_user;

删除用户

  • 前提条件:拥有 DROP USER 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:删除当前租户下的指定的用户。

SQL 语法

  1. drop user if exist <user_name>;

参数解释

参数参数解释
新建用户的名称

Note

删除用户时,需要先停止用户当前存在的会话,否则删除失败。

更多信息,参见 DROP USER

管理角色

创建角色

  • 前提条件:拥有 CREATE ROLE 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:在当前租户下创建一个自定义角色。

SQL 语法

  1. create role <role_name>;

参数解释

参数参数解释
新建角色的名称

更多信息,参见 CREATE ROLE

查看角色

  • 前提条件:拥有查看角色权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:查看当前租户下所有的角色。

SQL 语法

  1. select * from mo_catalog.mo_role;

切换角色

  • 前提条件:拥有 SET ROLE 权限。默认所有用户都拥有这个权限。

  • 操作说明:在租户中切换用户的角色,获取其他角色的权限,以便执行相应的 SQL。

SQL 语法

  1. set role <role_name>;

参数解释

参数参数解释
角色的名称

更多信息,参见 SET ROLE

删除角色

  • 前提条件:拥有 DROP ROLE 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:删除当前租户下的特定角色。

SQL 语法

  1. drop role if exists <role_name>;

参数解释

参数参数解释
需要删除的角色的名称

Note

删除某个指定角色时,会同时回收已经被授权的用户的角色。

更多信息,参见 DROP ROLE

管理权限

向角色授予某个对象权限

  • 前提条件:拥有 MANAGE GRANTS 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:向某个角色授予某个对象的某个权限。

SQL 语法

  1. grant <privilege> on <object_type> <object_name> to <role_name>

参数解释

参数参数解释
权限
对象类型
对象名称
被赋予权限的角色

更多信息,参见 DRANT PRIVILEGES

向角色授予某类对象权限

  • 前提条件:拥有 MANAGE GRANTS 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:向角色授予所有数据库/数据表的某个权限。

SQL 语法

  1. grant <privilege> on database * to <role_name>;
  2. grant <privilege> on table *.* to <role_name>;

参数解释

参数参数解释
权限名称
被赋予权限的角色名称

Note

该操作虽然在授权多个相同类别对象时比较简便,但也很容易发生权限泄漏,请谨慎使用。

更多信息,参见 DRANT PRIVILEGES

向用户授予角色

  • 前提条件:拥有 MANAGE GRANTS 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:向某个用户授予某个角色。

SQL 语法

  1. grant <role_name> to <user_name>;

参数解释

参数参数解释
被赋予权限的角色
被赋予权限的用户

更多信息,参见 DRANT ROLE

让一个角色继承另一个角色的权限

  • 前提条件:拥有 MANAGE GRANTS 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:让 role_b 继承 role_a 的所有权限。

SQL 语法

  1. grant <role_a> to <role_b>;

Note

该权限继承为动态继承,若 role_a 的权限发生改变,则 role_b 所继承的权限也会动态更改。MatrixOne 不允许角色环继承,即 role1 继承 role2,role2 继承 role3,但是 role3 继承不能继承 role1。

更多信息,参见 DRANT ROLE

查看某一用户所拥有的权限

  • 前提条件:拥有 SHOW GRANTS 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:查看所指定用户当前所拥有的全部权限。

SQL 语法

  1. show grants for <user_name>@<localhost>

参数解释

参数参数解释
被赋予权限的用户

更多信息,参见 SHOW GRANTS

回收授权用户的某个角色

  • 前提条件:拥有 REVOKE 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:将某一用户的某一角色移除。

SQL 语法

  1. revoke <role_name> from <user_name>

参数解释

参数参数解释
被赋予权限的角色
被赋予权限的用户

更多信息,参见 REVOKE

回收角色中的某个对象权限

  • 前提条件:拥有 REVOKE 权限。

    · 默认拥有这个权限的角色为 MOADMIN 或 ACCOUNTADMIN:集群管理员(默认账户为 root)和由集群管理员创建的租户管理员默认拥有权限。

  • 操作说明:回收角色中的某个对象权限。

SQL 语法

  1. revoke <privilege> on <object_type> <object_name> to <role_name>;

参数解释

参数参数解释
权限名称
对象类型
对象名称
被赋予权限的角色

更多信息,参见 REVOKE