Oracle 手工建库第三步 创建数据字典
在手工建库完成之后,即通过create database建立了数据库启动到open状态,数据库是不存在数据字典的,需要创建数据库的数据字典。这个时候就要通过数据库脚本来创建数据字典表。
数据字典表都是一些只读的表,可以通过数据字典表去查询创建相关对象的信息,比如创建一张表,这张表里面有什么字段,表叫什么名字,这些等信息要通过数据字典表来查询到。
数据字典表对于用户来说是只读的,是由oracle来自动维护的,对于DDL操作数据库会自动完成数据字典表的维护。
创建数据字典表主要是跑三个脚本,前面两个脚本是用sys用户来跑的,最后一个脚本是system用户来跑。
@是代表运行脚本,?代表是oracle_home($ORACLE_HOME)
[oracle@Database2 db_1]$ find /u01 -name catalog.sql
/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/catalog.sql
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/sqlplus/admin/pupbld.sql (SYSTEM用户执行)
上面这些脚本跑完了,默认是没有Scott这个用户的,还需要跑@?/rdbms/admin/utlsampl
SQL> @?/rdbms/admin/utlsampl
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@Database2 ~]$ sqlplus scott/tiger
SQL> desc user_tables; --这个数据字典是当前用户拥有的对象的信息
Name Null? Type
----------------------------------------- -------- ----------------------------
TABLE_NAME NOT NULL VARCHAR2(30)
TABLESPACE_NAME VARCHAR2(30)
CLUSTER_NAME VARCHAR2(30)
IOT_NAME VARCHAR2(30)
STATUS VARCHAR2(8)
SQL> select TABLE_NAME,TABLESPACE_NAME from user_tables;
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
DEPT SYSTEM
EMP SYSTEM
BONUS SYSTEM
SALGRADE SYSTEM
SQL> select owner,table_name,tablespace_name from dba_tables where owner='SCOTT';
select owner,table_name,tablespace_name from dba_tables where owner='SCOTT'
*
ERROR at line 1:
ORA-00942: table or view does not exist
可以看到出现错误了,dba_tables是只能sys用户访问,Scott用户是访问不了这个数据字典表的。(普通用户是不可以访问dba打头的数据字典表)
SQL> conn / as sysdba
Connected.
SQL> set linesize 1200;
SQL> select owner,table_name,tablespace_name from dba_tables where owner='SCOTT';
OWNER TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
SCOTT DEPT SYSTEM
SCOTT EMP SYSTEM
SCOTT BONUS SYSTEM
SCOTT SALGRADE SYSTEM
三种数据字典,按照查询信息的范围可以分为下面三种 USER <ALL <DBA
也就是说以user开头的是查看当前用户拥有的对象信息,all开头的就是这个用户有权限访问的对象信息,包括自己可以访问还有别人授权访问的,dba就是整个数据字典表所有的对象的信息。
整个建库过程参考前面两篇文章:Oracle 手工建库第一步 创建instance -->Oracle 手工建库第二步 创建databse
相关文章
- poi操作oracle数据库导出excel文件
- oracle表数据误删还原
- 【Oracle】修改oracle监听端口
- Oracle PGA
- oracle利用merge更新一表的某列数据到另一表中
- Oracle,跳出游标循环
- oracle数据泵EXPDP和IMPDP使用说明
- 配置 Oracle 11gR2 在 CentOS6 上开机自启动
- Oracle sql"NOT IN"语句优化,查询A表有、B表没有的数据
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇一:WPF常用知识以及本项目设计总结
- Oracle归档日志满了怎么办
- Oracle与Sql Server复制表结构及数据
- Oracle多用户对一个表进行并发插入数据行操作
- Oracle数据库 External component has thrown an exception
- oracle返回多结果集
- Oracle中预定义角色有哪些?
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
- oracle常用的数据字典
- Oracle分组取第一条数据
- oracle优化思考-双刃剑
- Oracle数据库用户管理之二---权限授权去权(用户和角色)
- Oracle 逻辑备份(数据迁移)
- 【大数据开发运维解决方案】Oracle通过sqoop同步数据到hive
- 【大数据开发运维解决方案】Sqoop全量同步mysql/Oracle数据到hive
- 【大数据开发运维解决方案】OGG For Bigdata 12按操作类型同步Oracle数据到kafka不同topic
- Oracle 备份与还原