ORACLE数据库对象与用户管理
2004-10-12 20:30
363 查看
ORACLE数据库对象与用户管理 |
www.ncn.cn 一、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; |
相关文章推荐
- ORACLE数据库对象与用户管理
- Oracle数据库用户管理和数据导入导出
- oracle数据库一些用户管理语句
- Oracle数据库对象管理(实例介绍)
- 3.1.1管理Exchange收件人对象--创建和配置用户邮箱
- Oracle数据库中灵活管理用户表空间配额
- ORACLE数据库的用户管理(自学笔记)
- 关于Oracle数据库的用户对象配置以及数据镜像的总结--转载于项目组周朝勇笔记
- ORACLE数据库用户管理
- 关于Oracle数据库的用户对象配置以及数据镜像的总结
- (oracle数据库基础)第四章 数据库对象管理
- jdbc连接Oracle数据库实现学生管理系统(用数据库连接池支持多用户操作同一数据库)
- Oracle数据库备份与恢复之三:OS备份/用户管理的备份与恢复
- Oracle数据库的权限、用户、角色管理
- Oracle数据库的认证方法、用户管理、权限管理和角色管理等
- 删除oracle数据库用户的dba权限(当出现同一用户DBA可以登录,normal不能登录)“无法对SYS拥有的对象创建触发器”
- Oracle数据库的用户管理
- Oracle 12C 之 CDB/PDB用户的创建与对象管理
- Oracle数据库用户及权限管理_超越OCP精通Oracle视频课程培训08
- Oracle数据库备份与恢复(3):OS备份和用户管理