首页 > 代码库 > 创建用户及表空间

创建用户及表空间

Oracle 11.2.0.1


1. 创建新的用户默认表空间DCSOPEN_TBS

(1) 这里设置初始数据文件大小是200M,AUTOEXTEND属性默认自动增长,每次申请新的表空间时会分配32M,最多分配1024M。

(2) 这里未使用EXTENTMANAGEMENT LOCAL(可选),但默认是区本地管理模式(EXTENT_MANAGEMENT),区尺寸分配为AUTOALLOCATE(ALLOCATION_TYPE为SYSTEM),段空间管理为自动AUTO(SEGMENT_SPACE_MANAGEMENT)。


2. 创建新的临时表空间DCSOPEN_TEMPTBS:

(1) 和表空间创建的默认属性不同,临时表空间不能使用AUTO的尺寸分配,临时表空间都是用统一尺寸(默认使用1M)的本地管理的区创建也可以指定:UNIFORMA SIZE 2M;,且段空间管理不是AUTO,而是MANUAL手工方式。

(2)按照Oracle建议,使用1M统一区尺寸的本地管理的临时表空间作为默认临时表空间。


3. 创建用户DCSOPEN:

(1)  指定用户默认表空间和默认临时表空间,若不指定,则默认表空间使用的是一般创建Oracle的USERS表空间,默认临时表空间使用的是TEMP(若未建则使用SYSTEM表空间)。

(2) 接着可以赋予用户权限,例如:

GRANT
  CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
  ALTER ANY TABLE, ALTER ANY PROCEDURE,
  DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
  SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
  TO dcsopen;

(3)这里10g和11g貌似在用户使用表空间的配额上有些区别。

现象:

(3.1)10g新建一个用户,默认使用USERS表空间,只赋予CREATE TABLE和CREATE TABLE权限,该用户使用CREATE TABLE创建表时提示:ORA-01950: no privileges on tablespace ‘USERS‘

(3.2) 11g新建一个用户,默认使用USERS表空间,只赋予CREATE TABLE和CREATE TABLE权限,该用户可以CREATE TABLE创建表。

按说用户具有resource权限时才可以使用表空间的配额,11g中对该用户使用revoke resource from r1;提示ORA-01951: ROLE ‘RESOURCE‘ not granted to ‘R1‘,说明该用户并没有resource权限。

创建用户及表空间