1.oracle的系统权限,分为三种:
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
2.创建用户示例:
conn /as sysdba;
create tablespace test datafile 'd:\test01.dbf' size 10m unform size 64k;
alter database datafile 'd:\test01.dbf' autoextend on next 100m maxsize;
create tablespace temp datafile 'd:\temp.dbf' size 100m unform size 64k;
create user yangkai identified by yk123 default tablespace test01 temporary tablespace temp;
grant dba,resource,connect to yangkai;
revoke dba from yangkai;
create table TESTYK
(
pid NUMBER,
pname VARCHAR2(64)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255;
ORA-03249: 自动段空间管理的表空间大小都应至少具有 5 个块
3.临时表空间是一个磁盘空间,主要用于存储用户在执行ORDER BY等语句进行排序或汇总时产生的临时数据。没有临时表空间,有些操作可能无法进行。
tianlesoftware 杭州Dave
Temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。
4.oracle pctfree和pctused详解
一、建立表时候,注意PCTFREE参数的作用
PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。
PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。
二、举例说明
假设你一个块可以存放100个数据,而且PCTFREE 是10,PCTUSED是40,则:不断的向块中插入数据,如果当存放到90个时,就不能存放新的数据,这是受pctfree来控制,预留的空间是给UPDATE用的。
当你删除一个数据后,再想插入个新数据行不行?不行,必须是删除41个,即低于40个以后才能插入新的数据的,这是受pctused来控制的。
注意:如果表空间上启用了ASSM,在建立表的时候,只能指定PCTFREE,否则可用指定PCTFREE和PCTUSED。
-
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
-
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
- CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于DBA管理用户:授予connect,resource, dba权限。
[系统权限只能由DBA用户授出:sys, system(最开始只能是这两个用户)]
授权命令:SQL> grant connect, resource, dba to 用户名1 [,用户名2]...;
[普通用户通过授权可以具有与system相同的用户权限,但永远不能达到与sys用户相同的权限,system用户的权限也可以被回收。]
2.创建用户示例:
conn /as sysdba;
create tablespace test datafile 'd:\test01.dbf' size 10m unform size 64k;
alter database datafile 'd:\test01.dbf' autoextend on next 100m maxsize;
create tablespace temp datafile 'd:\temp.dbf' size 100m unform size 64k;
create user yangkai identified by yk123 default tablespace test01 temporary tablespace temp;
grant dba,resource,connect to yangkai;
revoke dba from yangkai;
create table TESTYK
(
pid NUMBER,
pname VARCHAR2(64)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255;
-
Microsoft Windows XP [版本 5.1.2600]
-
(C) 版权所有 1985-2001 Microsoft Corp.
-
-
C:\Documents and Settings\Administrator>sqlplus /nolog
-
-
SQL*Plus: Release 11.2.0.1.0 Production on 星期四 4月 9 22:20:08 2015
-
-
Copyright (c) 1982, 2010, Oracle. All rights reserved.
-
-
SQL> conn /as sysdba;
-
已连接。
-
-
SQL> create tablespace test datafile 'c:\test01.dbf' size 10m uniform size 32k;
-
- create tablespace test datafile 'c:\test01.dbf' size 10m uniform size 32k
- *
ORA-03249: 自动段空间管理的表空间大小都应至少具有 5 个块
-
SQL> create tablespace test datafile 'c:\test01.dbf' size 10m uniform size 64k;
-
-
表空间已创建。
-
-
SQL> alter database datafile 'c:\test01.dbf' autoextend on next size 50m maxsize
-
1g;
-
alter database datafile 'c:\test01.dbf' autoextend on next size 50m maxsize 1g
-
*
-
第 1 行出现错误:
-
ORA-02493: NEXT 子句中的文件增量大小无效
-
-
-
SQL> alter database datafile 'c:\test01.dbf' autoextend on next 50m maxsize 1g;
-
-
- 数据库已更改。
SQL>alter tablespace test add datafile 'c:\test001.dbf' size 10m uniform size 64k;----这部分多余,因为是add
*
第 1 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> alter tablespace test add datafile 'c:\test001.dbf' size 10m;
表空间已更改。
SQL>
*
第 1 行出现错误:
ORA-00933: SQL 命令未正确结束
SQL> alter tablespace test add datafile 'c:\test001.dbf' size 10m;
表空间已更改。
SQL>
-
-
SQL> create tablespace temp datafile 'c:\temp.dbf' size 50 uniform size 64k;
-
create tablespace temp datafile 'c:\temp.dbf' size 50 uniform size 64k
-
*
-
第 1 行出现错误:
-
ORA-01543: 表空间 'TEMP' 已存在----本来就有的临时表空间
-
-
SQL> create tablespace tempyk datafile 'c:\temp.dbf' size 50m uniform size 64k;
-
-
表空间已创建。
-
-
SQL> create user yangkai01 identified by yk123 default tablespace test temporary
-
tablespace tempyk;
-
create user yangkai01 identified by yk123 default tablespace test temporary tabl
-
espace tempyk
-
*
-
第 1 行出现错误:
-
ORA-10615: Invalid tablespace type for temporary tablespace
- -----因为我指定的是临时表空间,而tempyk表空间的类型不是临时表空间,所以会出错。应该创建一个类型为临时类型的表空间或者使用默认的临时表空间。
-
-
SQL> drop tablespace 'tempyk' including contents and datafiles;
-
drop tablespace 'tempyk' including contents and datafiles
-
*
-
第 1 行出现错误:
-
ORA-02216: 需要表空间名
-
-
-
SQL> drop tablespace TEMPYK including contents and datafiles;
-
-
表空间已删除。----删除表空间及其数据文件
-
-
SQL> create temporary tablespace tempyk datafile 'c:\temp.dbf' size 50m uniform
-
size 64k;
-
create temporary tablespace tempyk datafile 'c:\temp.dbf' size 50m uniform size
-
64k
-
*
-
第 1 行出现错误:
-
ORA-25139: CREATE TEMPORARY TABLESPACE 的选项无效
-
-
-
SQL> create temporary tablespace tempyk tempfile 'c:\temp.dbf' size 50m uniform
-
size 64k;
-
-
表空间已创建。
-
-
SQL> create user yangkai01 identified by yk123 default tablespace test temporary
-
tablespace tempyk;
-
-
用户已创建。----指定了数据表空间和临时表空间
-
-
SQL> grant dba,resource,connect to yangkai01;
-
-
授权成功。
-
-
SQL> revoke dba from yangkai01;
-
-
撤销成功。
-
-
SQL> create table TESTYK
-
2 (
-
3 pid NUMBER,
-
4 pname VARCHAR2(64)
-
5 )
-
6 tablespace USERS
-
7 pctfree 10
-
8 initrans 1
-
9 maxtrans 255;
-
-
表已创建。
- -------这里创建的表,是系统的默认表空间users。
- SQL>
tianlesoftware 杭州Dave
Temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。
4.oracle pctfree和pctused详解
一、建立表时候,注意PCTFREE参数的作用
PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被插入的,这个时候处在上升期。
PCTUSED:是指当块里的数据低于多少百分比时,又可以重新被insert,一般默认是40,即40%,即:当数据低于40%时,又可以写入新的数据,这个时候处在下降期。
二、举例说明
假设你一个块可以存放100个数据,而且PCTFREE 是10,PCTUSED是40,则:不断的向块中插入数据,如果当存放到90个时,就不能存放新的数据,这是受pctfree来控制,预留的空间是给UPDATE用的。
当你删除一个数据后,再想插入个新数据行不行?不行,必须是删除41个,即低于40个以后才能插入新的数据的,这是受pctused来控制的。
注意:如果表空间上启用了ASSM,在建立表的时候,只能指定PCTFREE,否则可用指定PCTFREE和PCTUSED。