zoukankan      html  css  js  c++  java
  • Oracle数据库之创建表空间与用户

    Oracle数据库之创建表空间与用户

    一、创建表空间

    基本语法表述:

    CREATE TABLESPACE tablespace_name
        [DATAFILE datafile_spec1 [,datafile_spec2] ......]
        [ { MININUM EXTENT integer [K|M]
            |BLOCKSIZE integer [K]
            |[ONLINE|OFFLINE]
            |logging clause
            |[PERMANENT|TEMPORARY]
            |extent_manager_clause
            |segment_manager_clause}
        ]

    详细的 CREATE TABLESPACE 语法描述请参考:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_7003.htm#SQLRF01403

    说明:

    1.tablespace_name:

    指出表空间的名称。

    2.datafile_spec1:

    指出表空间包含的数据文件。

    [filename]
    [SIZE integer [ K | M ]] 
    [REUSE] 
    [AUTOEXTEND { OFF | ON 
                  [NEXT integer [ K | M ]] 
                  [MAXSIZE { UNLIMITED | integer [ K | M ] }] 
                }]

    其中filename是数据文件的全路径名;SIZE是文件的大小;REUSE表示文件是否被重用;AUTOEXTEND表明是否自动扩展;NEXT表示数据文件满了以后,扩展的大小。

    3.MININUM EXTENT integer [K|M]:

    指出在表空间中区的最小值。这个参数可以减小空间碎片,保证在表空间的范围是这个数值的整数倍。

    4.BLOCKSIZE integer [K]

    这个参数可以设定一个不标准的块的大小。如果要设置这个参数,必须设置db_block_size,至少一个db_nk_block_size,并且声明的integer的值必须等于db_nk_block_size。

    注意:在临时表空间不能设置这个参数。

    5.[ONLINE|OFFLINE]

    改变表空间的状态。online使表空间创建后立即有效,这是缺省值,offline使表空间创建后无效。

    6.logging clause

    { LOGGING | NOLOGGING }

    这个子句声明这个表空间上所有的用户对象的日志属性(缺省是LOGGING),包括表,索引,分区,物化视图,物化视图上的索引,分区。

    7.[PERMANENT|TEMPORARY]

    指出表空间的属性,是永久表空间还是临时表空间。永久表空间存放的是永久对象,临时表空间存放的是session生命期中存在的临时对象。这个参数生成的临时表空间创建后一直都是字典管理,不能使用extent management local选项。如果要创建本地管理表空间,必须使用create temporary tablespace。

    8.extent_management_clause

    EXTENT MANAGEMENT
       { LOCAL
         [ AUTOALLOCATE
         | UNIFORM
           [ SIZE size_clause ]
         ]
         | DICTIONARY
       }

    说明了表空间如何管理区。一旦你声明了这个子句,只能通过移植的方式改变这些参数。

    如果希望表空间本地管理的话,声明local选项。本地管理表空间是通过位图管理的。autoallocate说明表空间自动分配范围,用户不能指定范围的大小。只有9.0以上的版本具有这个功能。uniform说明表空间的区的固定大小,缺省是1m。

    9.segment_manager_clause

    SEGMENT SPACE MANAGEMENT { AUTO | MANUAL }

    说明了如何管理段。只为永久性的,本地管理表空间有关。可以指定是否应该跟踪在使用空闲列表或位图的表空间段的使用和自由空间。本选项不适用于临时表空间。

    示例:

    CREATE TABLESPACE tbs_01 
        DATAFILE 'demo.dbf'
        SIZE 40M
        AUTOEXTEND ON NEXT 5M MAXSIZE 100M
        ONLINE
        LOGGING
        EXTENT MANAGEMENT LOCAL UNIFORM SIZE 2M
        SEGMENT SPACE MANAGEMENT AUTO;

    我们可以使用DROP TABLESPACE语句从数据库中删除表空间:

    DROP TABLESPACE tablespace 
       [ INCLUDING CONTENTS [ {AND | KEEP} DATAFILES ]
         [ CASCADE CONSTRAINTS ]
       ] ;

    使用详情见:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_9004.htm#SQLRF01807

    示例:

    DROP TABLESPACE tbs_01
       INCLUDING CONTENTS AND DATAFILES;

    二、创建用户

    基本语法描述:

    CREATE USER user
        IDENTIFIED BY password
        [DEFAULT TABLESPACE tablespace]
        [TEMPORARY TABLESPACE tablespace]

    详细的语法与使用见:http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_8003.htm#SQLRF01503

    说明:

    1.user

    用户名。

    2.password

    密码

    3.DEFAULT TABLESPACE tablespace

    用户默认使用的表空间。

    4.TEMPORARY TABLESPACE tablespace

    用户使用的临时表空间。

    示例:

    CREATE USER sidney 
        IDENTIFIED BY out_standing1
        DEFAULT TABLESPACE tbs_01 
        TEMPORARY TABLESPACE temp

    用户创建完毕后,并不能马上使用,我们还需要为用户分配权限或角色:

    GRANT  privileges or role TO user;

    若要撤销权限或角色:

    REVOKE  privileges or role FROM user;

    示例:

    -- 把CONNECT、RESOURCE角色授予用户sidney
    GRANT CONNECT,RESOURCE TO sidney;
    -- 撤销用户sidney的RESOURCE角色
    REVOKE RESOURCE FROM sidney; 
    -- 允许用户查看 EMP 表中的记录
    GRANT SELECT ON emp TO sidney;
    -- 允许用户更新 EMP 表中的记录
    GRANT UPDATE ON emp TO sidney;
     
     
  • 相关阅读:
    python 一
    opengl 正方体+模拟视角旋转
    MFC窗口实现最小化到托盘 右键菜单和还原
    C++获取当前机器内网IP地址
    ubuntu vim终端编辑命令
    整理网站优化(SEO)的方案
    c++函数声明的位置对函数重载的影响
    lua调用dll demo
    一、智能指针及线程同步总结------linux多线程服务端编程
    vscode remote wsl 的NoPermissions permission denied问题
  • 原文地址:https://www.cnblogs.com/zf29506564/p/5759879.html
Copyright © 2011-2022 走看看