设为首页 加入收藏

TOP

玩转oracle学习第四天(二)
2015-11-21 02:09:52 来源: 作者: 【 】 浏览:3
Tags:玩转 oracle 学习
ile=...
(4)导入数据
如果对象(比如表)已经存在可以只导入表的数据
imp userid=scott/tiger@myoral1 tables=(emp) file=D:\xxx.dmp ignore=y
导入数据库
在默认情况下,当导入数据库时,会导入所有对象结构和数据,案例如下:
imp userid=system/manager full=y file=D:\xxx.dmp
scott用户 ------------》 scott的方案--------》方案中有很多东西,称为数据对象

视图
system用户-------------------->system方案----------》数据对象---------》磁盘
数据字典和动态性能视图
数据字典是oracle数据库中最重要的组成部分,它提供了数据库的一些系统信息
动态性能视图记载了例程启动后的相关信息
数据字典是一个数据对象,它放在system方案中
包括数据基表和动态数据字典视图
基表:存放静态数据
动态视图:存放动态的数据
查询表:
user_table;
用于显示当前用户所拥有的所有表,他只返回当前用户所对应方案的所有表
select table_name from user_tables;
all_tables:
用于显示当前用户可以访问的所有表,它不仅会返回
当前用户方案的所有表,还会返回当前用户可以访问的其它方案的表
比如:
select table_name from all_tables;
dba_tables:
它会显示所有方案拥有的数据库表,但是查询这种数据库字典视图,要求
用户必须是dba角色或是有select any table系统权限
例如:当前system用户查询数据字典视图dba_table时,它会返回
system,sys,scott...方案所对应的数据库表
用户名,权限,角色
在建立用户时,oracle会把用户的信息存放到数据字典中,当给用户授予权限或是角色时,
oracle会将权限和角色的信息存放在数据字典,
通过查询dba_users可以显示所有数据库用户的详细信息;
通过查询数据字典视图dba_sys_privs,可以显示用户所具有的系统权限;
通过查询数据字典视图dba_tab_privs,可以显示用户具有的对象权限
通过查询数据字典dba_col_privs,可以显示用户具有的列权限
通过查询数据库字典视图dba_role_privs可以显示用户所具有的对象
desc dba_users;
select username,password from dba_users;
权限分为:系统权限和对象权限
例如:要查询scott具有的角色,可查询dba_role_privs:
desc dba_role_privs;
select * from dba_role_privs where grantee='scott';
角色 权限浅谈:
角色:一个角色拥有很多权限,角色就是权限构成的,角色分配给一个用户,这个用户就拥有
了这个角色的所有权限,一个用户可以拥有多个角色
//查询oracle中所有的系统权限,一般是dba,大概130种
select * from system_privilege_map order by name;
//查询oracle中所有的角色,一般是dba
select * from dba_roles;
//查询oracle中所有对象权限,一般是dba,大概16种
select distinct privilege from dba_tab_privs;
//查询数据库的表空间
select tablespace_name from dba_tablespaces;
问题:
1.如何查询一个角色所包含的权限?
1.1一个角色包含的系统权限?
select * from dba_sys_privs where grantee='DBA';
查看connect角色包含的系统权限
select * from dba_sys_privs where grantee='connect';
或者如下方法查看:
select * from role_sys_privs where role='connect';
1.2一个角色包含的对象权限?
select * from dba_tab_privs where grantee='connect';
2.oracle究竟有多少种角色?
select * from dba_roles; //以system用户登陆,可查询到oracle中预定义25种角色
3.如何知道一个某个用户包含了哪些角色?
select * from dba_role_privs where grantee='scott';
4.显示当前用户可以访问的所有数据字典视图
select * from dict where comments like '%grant%';
5.显示当前数据库的全称
select * from global_name;
*****同一个用户可以登录多个数据库实例
其它说明
::数据字典记录有oracle数据库的所有系统信息,通过查询数据字典可以取得以下系统信息:
(1)对象定义情况
(2)对象占用空间大小
(3)列信息
(4)约束信息
。。。
但是因为这些个信息,可以通过PL/SQL developer工具查询得到动态性能视图:用于记录当前例程的活动信息,当启动oracle server时,系统会建立动态性能视图,当停止oracle server时,系统会删除动态性能视图,oracle的所有动态性能视图都是以v_$开始的,并且oracle为每个动态性能视图都提供了相应的同义词,并且其同义词是以V$开始的,例如v_$datafile的同义词为V$datafile;动态性能视图的所有者为sys,一般情况下,由dba或是特权用户来查询动态性能视图。因为这个在实际中较少,所以飞过管理表空间和数据文件-介绍
表空间:表空间是数据库的逻辑组成部分,从物理上上讲,数据库数据
存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,
表空间由一个或是多个数据文件组成
表空间---》数据文件
类似
北京----->多块土地
介绍:
oracle中逻辑结构包括表空间,段,区和块。
说明一下数据库是由表空间构成,而表空间又是由段构成,
而段又是由区构成,而区又是由oracle块构成的这样的一种
结构,可以提高数据库的效率
逻辑图如下:
表空间-------》段 -------------------》区--------------》块

。。。



。。。


。。。
oracle数据库之所以有如此结构,目的是为了更好的管理数据库,一个数据库有多少
表空间是没有任何限制的,
表空间用于从逻辑上组织数据库的数据,数据库逻辑上是由
一个或是多个表空间组成的,通过表空间可以达到以下作用:
(1)控制数据库占用的磁盘空间
(2)dba可以将不同数据类型部署到不同的位置,这样有利于
提高i/o性能,同时有利于备份和恢复等管理操作
有经验的数据库管理员一般是把表,视图,触发器放在不同
的表空间中,
建立表空间:
建立表空间是使用create tablespace命令完成的,需要注意的是:
一般情况下,建立表空间是特权用户或是
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇有关11g新特性ENABLE_DDL_LOGGING.. 下一篇Oracle备份恢复详

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: