选择显示字体大小

oracle数据库对象与用户管理

oracle数据库对象与用户管理

一、oracle数据库模式对象的管理与维护

本节的主要内容是关于oracle数据库模式对象的管理与维护,这些模式对象包括:表空间、表、视图索引、序列、同义词、聚集和完整性约束。对于每一个模式对象,首先描述了它的定义,说明了它的功能,最后以基于sql语言的实例说明如何对它们进行管理于维护。

1.1 表空间

由于表空间是包含这些模式对象的逻辑空间,有必要先对它进行维护。

创建表空间
sql>create tablespace jxzy

>datafile ‘/usr/oracle/dbs/jxzy.dbf’

>online;

修改表空间
sql>alter tablespace jxzy offline normal;

sql>alter tablespace jxzy

>rename datafile ‘/usr/oracle/dbs/jxzy.dbf’

>to ‘/usr/oracle/dbs/jxzynew.dbf’

>online

sql>create tablespace jxzy online

删除表空间
sql>drop tablespace jxzy

>including contents

1. 2 表维护

表是数据库中数据存储的基本单位,一个表包含若干列,每列具有列名、类型、长度等。

表的建立
sql>create table jxzy.switch(

>office_num number(3,0) not null,

>switch_code number(8,0) not null,

>switch_name varchar2(20) not null);

表的修改
sql>alter table jxzy.switch

>add (desc varchar2(30));

表的删除
sql>drop table jxzy.switch

>cascade constraints

//删除引用该表的其它表的完整性约束

1. 3 视图维护

视图是由一个或若干基表产生的数据集合,但视图不占存储空间。建立视图可以保护数据安全(仅让用户查询修改可以看见的一些行列)、简化查询操作、保护数据的独立性。

视图的建立
sql>create view jxzy.pole_well_view as

>(select pole_path_num as path,

pole as device_num from pole

>union

>select pipe_path_num as path,

> well as device_num from well);

视图的替换
sql>replace view jxzy.pole_well_view as

>(select pole_path_num as path,

pole as support_device from pole
>union

>select pipe_path_num as path,

well as support_device from well);
视图的删除
sql>drop view jxzy.pole_well_view;

1.4 序列维护

序列是由序列发生器生成的唯一的整数。

序列的建立
sql>create sequence jxzy.sequence_cable

>start with 1

>increment by 1

>no_maxvalue;

建立了一个序列,jxzy.sequence_cable.currval返回当前值,jxzy.sequence_cable.nextval 返回当前值加1后的新值

序列的修改
sql>alter sequence jxzy.sequence_cable

>start with 1 //起点不能修改,若修改,应先删除,然后重新定义

>inctement by 2

>maxvalue 1000;

序列的删除
sql>drop sequence jxzy.sequence_cable

1. 5 索引维护

索引是与表相关的一种结构,它是为了提高数据的检索速度而建立的。因此,为了提高表上的索引速度,可在表上建立一个或多个索引,一个索引可建立在一个或几个列上。

对查询型的表,建立多个索引会大大提高查询速度,对更新型的表,如果索引过多,会增大开销。

索引分唯一索引和非唯一索引

索引的建立
sql>create index jxzy.idx_switch

>on switch(switch_name)

>tablespace jxzy;

索引的修改
sql>alter index jxzy.idx_switch

>on switch(office_num,switch_name)

>tablespace jxzy;

索引的删除
sql>drop index jxzy.idx_switch;

1. 6 完整性约束管理

数据库数据的完整性指数据的正确性和相容性。数据完整型检查防止数据库中存在不符合语义的数据。

完整性约束是对表的列定义一组规则说明方法。oracle提供如下的完整性约束.

a. not null 非空

b. unique 唯一关键字

c. primaty key 主键一个表只能有一个,非空

d. foreiga key 外键

e.check 表的每一行对指定条件必须是true或未知(对于空值)

例如:

某列定义非空约束
sql>alter table office_organization

>modify(desc varchar2(20)

>constraint nn_desc not null)

某列定义唯一关键字
sql>alter table office_organization

>modify(office_name vatchar2(20)

>constraint uq_officename unique)

定义主键约束,主键要求非空
sql>create table switch(switch_code number(8)

>constraint pk_switchcode primary key,)

使主键约束无效
sql>alter table switch disable primary key

定义外键
sql>create table pole(pole_code number(8),

>office_num number(3)

>constraint fk_officenum

>references office_organization(office_num)

>on delete cascade);

定义检查
sql>create table office_organization(

>office_num number(3),

>constraint check_officenum

>check (office_num between 10 and 99);

二、oracle数据库用户与权限管理

oracle是多用户系统,它允许许多用户共享系统资源。为了保证数据库系统的安全数据库管理系统配置了良好的安全机制。

2. 1 oracle数据库安全策略

建立系统级的安全保证
系统级特权是通过授予用户系统级的权利来实现,系统级的权利(系统特权)包括:建立表空间、建立用户、修改用户的权利、删除用户等。系统特权可授予用户,也可以随时回收。oracle系统特权有80多种。

建立对象级的安全保证
对象级特权通过授予用户对数据库中特定的表、视图、序列等进行操作(查询、增、删改)的权利来实现。

建立用户级的安全保证
用户级安全保障通过用户口令和角色机制(一组权利)来实现。引入角色机制的目的是简化对用户的授权与管理。做法是把用户按照其功能分组,为每个用户建立角色,然后把角色分配给用户,具有同样角色的用户有相同的特权。

2.2 用户管理

oracle用户管理的内容主要包括用户的建立、修改和删除

用户的建立
sql>create user jxzy

>identified by jxzy_password

>default tablespace system

>quata 5m on system; //供用户使用的最大空间限额

用户的修改
sql>create user jxzy

>identified by jxzy_pw

>quata 10m on system;

删除用户及其所建对象
sql>drop user jxzy cascade; //同时删除其建立的实体

2.3系统特权管理与控制

oracle 提供了80多种系统特权,其中每一个系统特权允许用户执行一个或一类数据库操作。

授予系统特权
sql>grant create user,alter user,drop user

>to jxzy_new

>with admin option;

回收系统特权
sql>revoke create user,alter user,drop user

>from jxzy_new

//但没有级联回收功能

显示已被授予的系统特权(某用户的系统级特权)
sql>select*from sys.dba_sys_privs

2.4 对象特权管理与控制

oracle对象特权指用户在指定的表上进行特殊操作的权利。这些特殊操作包括增、删、改、查看、执行(存储过程)、引用(其它表字段作为外键)、索引等。

授予对象特权
sql>grant select,insert(office_num,office_name),

>update(desc)on office_organization

>to new_adminidtrator

>with grant option;

//级联授权

sql>grant all on office_organization

>to new_administrator

回收对象特权
sql>revoke update on office_orgaization

>from new_administrator

//有级联回收功能

sql>revoke all on office_organization

>from new_administrator

显示已被授予的全部对象特权
sql>select*from sys.dba_tab_privs

2.5 角色的管理

oracle的角色是命名的相关特权组(包括系统特权与对象特权),oracle用它来简化特权管理,可把它授予用户或其它角色。

oracle数据库系统预先定义了connect 、resource、 dba、 exp_full_database、 imp_full_database五个角色。connect具有创建表、视图、序列等特权;resource具有创建过程、触发器、表、序列等特权、dba具有全部系统特权;exp_full_database、 imp_full_database具有卸出与装入数据库的特权。

通过查询sys.dba_sys_privs可以了解每种角色拥有的权利。

授予用户角色
sql>grant dba to new_administractor

>with grant option;
 


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons