学习OceanBase :如何在MySQL模式下创建一个用户?

本节主要介绍如何创建一个用户。

谁可以创建用户

数据库在运行过程中,往往需要创建不同的用户,并为用户赋予相应的权限,一般被授予 CREATE USER 权限的用户可以创建用户。

由于 CREATE USER 权限较大,默认仅集群管理员和租户管理员拥有此系统权限,其他用户如果需要创建用户,则需要被授予 CREATE USER 权限,授权相关操作请参见 修改用户权限

用户名称的规则

为用户指定名称时,需要注意以下限制:

  • 用户名的唯一性:每个用户名需要保证在租户内唯一。

用户名称在租户内是唯一的,不同租户下的用户可以同名,故通过 用户名@租户名 的形式可以在系统全局唯一定位一个租户用户。

由于系统租户与 MySQL 租户属于同一兼容模式,为区别系统租户和普通租户下的用户,建议对系统租户下的用户名称使用特定前缀。

  • 用户名的命名约定:

  • 使用 OBClient 、ODC 等客户端创建用户时,要求用户名长度不超过 64 个字节。

  • 使用 OCP 创建用户时,要求用户名以英文字母开头,可包含大写字母、小写字母、数字和下划线,且长度为 2~64 个字符。

通过 SQL 语句创建一个拥有最小数据库权限的用户

您可以使用 CREATE USER 语句创建用户。创建用户必须拥有 CREATE USER 的系统权限。在创建用户时,建议坚持最小权限原则,即所有用户只拥有执行其任务所需的最小权限。

创建用户的 SQL 语句如下:

CREATE USER [IF NOT EXISTS] user_specification_list
    [REQUIRE {NONE | SSL | X509 | tls_option}];

user_specification_list:
    user_specification [, user_specification ...]

user_specification:
    user IDENTIFIED BY  'authstring'
  | user IDENTIFIED BY PASSWORD 'hashstring'

tls_option:
 | CIPHER 'cipher'
 | ISSUER 'issuer'
 | SUBJECT 'subject'

语句说明:

  • IF NOT EXISTS:如果待创建的用户名已存在并且未指定 IF NOT EXISTS,则系统会报错。

  • IDENTIFIED BY:使用可选的 IDENTIFIED BY 子句,可以为账户指定一个密码。

其中:

  • user IDENTIFIED BY 'authstring' 语句中的密码为明文,存入 mysql.user 表中后,服务器端会变为密文存储下来。

  • user IDENTIFIED BY PASSWORD 'authstring' 语句中的密码为密文。

  • REQUIRE 用于指定用户使用的加密协议,为 NONESSLX509tls_option 中的一种。

创建一个拥有最小数据库权限的用户 test2 的示例如下。

  1. 使用 root 用户登录到 Mysql 租户。

  1. 执行以下命令,创建用户 test2

obclient> CREATE USER 'test2' IDENTIFIED BY '**1***';
  1. 执行以下命令,授予用户 test2 访问数据库 db1 中所有表的权限。

obclient> GRANT SELECT ON db1.* TO test2;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值