暂无图片
暂无图片
8
暂无图片
暂无图片
暂无图片

OceanBase的Oracle模式下创建用户

OceanBase 2023-01-30
2482

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

谁可以创建用户

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

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

用户名称的规则

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

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

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

  • 用户名的命名约定:

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

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

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

对于拥有 CREATE USER 的系统权限的用户,在创建用户时,建议坚持最小权限原则,即所有用户只拥有执行其任务所需的最小权限。

创建用户的 SQL 语句如下:

   CREATE USER user_name [host_name] IDENTIFIED BY password [REQUIRE {NONE | SSL | X509 | tls_option_list}]
 [PROFILE user_profile] [DEFAULT TABLESPACE table_space] [PRIMARY_ZONE 'zone_name']

password:
    STR_VALUE
    
tls_option_list:
      tls_option
    | tls_option_list, tls_option
    
tls_option:
      CIPHER STR_VALUE
    | ISSUER STR_VALUE
    | SUBJECT STR_VALUE

语句说明:

  • user_name:用户名,如果同名用户已经存在,则系统会报错。

  • host_name:用户所在的主机 IP,格式为 @xx.xx.xx.xx

  • IDENTIFIED BY:在 Oracle 模式中,必须使用 IDENTIFIED BY 为用户指定一个密码。

  • REQUIRE:指定用户使用的加密协议为 NONESSLX509 和 tls_option_list中的一种。

  • PROFILE:用于指定用户使用的 Profile。如果不指定,则使用系统默认的 DEFAULT 配置文件,DEFAULT 配置文件的所有设置默认为无限制。

  • DEFAULT TABLESPACE table_space:用于指定用户的默认表空间,一般无实际意义。

  • PRIMARY_ZONE:用于指定用户的 Primary Zone。

    更多 Primary Zone 相关的介绍信息请参见 Primary Zone

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

  1. 使用 sys 用户登录到 Oracle 租户。

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

    obclient> CREATE USER test2 IDENTIFIED BY **1***;
    

    CREATE USER 语句的更多信息,请参见 CREATE USER

  3. 执行以下命令,授予用户 test2 连接数据库的权限。

    obclient>GRANT CREATE SESSION TO test2;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论