从事国产数据库产品管理、内核研发工作多年
获得PostgreSQL社区MVP
上一篇我们介绍了红象数据库的Oracle兼容性(内核篇),本文将主要介绍如何进行红象数据库的ORACLE兼容模式的初始化及如何创建和使用用户,带领大家一步一步深入了解和使用红象数据库。
Ø初始化参数
红象数据库在初始化中增加了-m ,即兼容性模式参数,具体值如下所示:
lpg:表示在兼容PG模式下执行数据库初始化操作,此时初始化的执行过程与原生PG一致。
loracle:表示在兼容ORACLE模式下执行数据库初始化操作,此时的初始化过程除执行原生PG在初始化阶段的相关操作外数据库初始化,还将执行相应的操作以支持Oracle兼容模式,例如增加数据类型、内置函数、系统视图、系统包,创建PL/SQL语言等。
其中-m参数是可选项,如果不设置的情况下初始化操作默认是在PG兼容模式下执行。
例如:
Initdb -D -m pg
Initdb -D -m oracle
另外对于大小写增加了-c ,具体值如下所示:
lNORMAL:表示DB服务器禁用字符串大小写转换功能,与PG一致。
lINTERCHANGE:表示DB服务器启用字符串大小写转换功能:加双引号的字符串全为大写则转换为小写,全为小写则转换为大写,大小 写混合则保持不变。
lLOWERCASE:表示DB服务器启用字符串大小写转换功能:加双引号的字符串全为大写则转换为小写,全为小写或大小写混合则保持 不变。
该选项在PG模式下无效,-c参数是可选项,如果不设置的情况下默认的字符串转换模式为“INTERCHANGE”。
示例:
Initdb -D -m oracle -c NORMAL
Initdb -D -m oracle -c INTERCHANGE
Initdb -D -m oracle -c LOWERCASE
注意事项:在oracle模式下不建议使用NORMAL。
Ø用户管理
另外在兼容模式下提供了三类用户分别为:
l实例级别系统用户:此类用户可以跨库使用。此类用户只有一个,只在执行初始化(initdb)操作时生成;拥有所有的权限;可以创建实例级别用户和库级用户。
l实例级别用户:此类用户可以跨库使用。默认拥有连接、创建、删除所有DB和SELECT所有DB对象的权限;除了可以创建数据库对象外,实例级别用户不能创建其他任何DB对象;只能由实例级别系统用户通过执行“create instance user with createdb” 语句创建,也可以通过执行“drop instance user”语句被删除。该用户用于复制、备份、监控等操作。
l库级别用户:此类用户无法跨库使用。
此类用户又分为如下两类:
库级系统用户分为sys和system
1)库级用户可由实例级别系统用户或者库级系统用户创建。
2)每当创建一个DB时,被创建的DB中都要关联创建两个库级系统用户(sys和system),这两个用户分别与所属DB一一对应,密码默认与实例级系统用户一致。
3)库级用户拥有对所属DB的所有DB级别对象操作的权限。
4)用户名(sys和system)不能修改;它们随着DB的创建而创建,随着DB的删除而删除;除了不能创建和删除DB外,sys和system拥有所在DB上所有DB对象的所有权限。
5)库级用户通过执行“create user ”语句被创建,通过执行“drop user ”语句被删除;也可以通过删除DB时被关联删除。
关于用户密码,当初始化命令(initdb)中包含有“-W”选项时,表示在初始化操作中要使用交互方式为实例级别系统用户设置密码;如果认证方式为“MD5”和“PASSWORD”,则关联的为库级系统用户(sys和system)设置口令;口令与实例级别系统用户一致。
创建数据库 当前用户为“实例级别用户”的场景下执行创建数据库的SQL语句,如果语句中不设置密码数据库初始化,则“库级系统用户”(sys和system)的密码默认设置为"123456";如果设置了密码,则此密码被库级系统用户(sys和system)使用。
Ø操作示例
1.在当前用户的环境变量配置文件“.bashrc”中设置环境变量“LD_LIBRARY_PATH”
2.假设运行的数据库中首次创建的实例级别系统用户、实例级别用户、库级用户分别为:“initdbuser”、“insuser”和“dbuser”
3.执行初始化命令
./initdb -D ../oradata -U initdbuser -m oracle
4.启动数据库服务器
./postgres -D ../oradata -p 9876
5.使用psql连接默认数据库“postgres”(假定使用实例级别系统用户“initdbuser”)
./psql -d postgres -U initdbuser -u -p 9876
6.创建新的实例级别用户,当前用户为实例级别系统用户”initdbuser”
create instance user insuser with createdb;
7.切换当前用户为新生成的实例级别用户“insuser”
c - insuser - - inslevel
8.创建新的库级用户(当前用户为实例级别系统用户”initdbuser”)
create user dbuser;
9.删除新创建的实例级别用户和库级用户
drop instance user insuser;
10.删除库级用户
drop user dbuser;
到目前为止,本文档介绍了红象数据库在ORACLE兼容模式下初始化操作及用户管理功能,下一篇将详细介绍红象数据库系统参数相关内容。
红象数据库试用下载地址:
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99
2.本站所有项目来源于投稿或购买自其他第三方,若本站侵犯了您的权益请 联系站长 进行删除处理。