zoukankan      html  css  js  c++  java
  • 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 play.bitsCN.com累了吗玩一下吧
      
      >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; play.bitsCN.com累了吗玩一下吧
      
      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 外键 feedom.net国内最早的网管网站
      
      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) bbs.bitsCN.com国内最早的网管论坛
      
      >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; //同时删除其建立的实体 blog.bitsCN.com网管博客等你来搏
      
      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), feedom.net国内最早的网管网站
      
      >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的角色是命名的相关特权组(包括系统特权与对象特权)
  • 相关阅读:
    学习完java基础,总结的一些东西,希望大佬们茶余饭后看看,如有错误还请指正
    JDK和JRE的简单概述
    堆排序
    mybatis的一级缓存
    重用执行器和批处理执行器
    JDBC statement和mybatis mapper statement
    深入浅出Mybatis技术原理与实战(杨开振)(带详细书签) PDF 下载 高清 完整版+源码
    mybatis执行器1
    mybatis执行器1---简单描述JDBC
    JDBC不再需要Class.forName()来显式加载jdbc驱动
  • 原文地址:https://www.cnblogs.com/skyblue/p/815004.html
Copyright © 2011-2022 走看看