9
回答
Oracle表空间创建问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

下面是表空间的创建语句,我有两个疑问(数据库名:OODB,用户sa,密码sa):

  1 从哪地方能判断该表空间是为用户sa创建的?

  2 怎么判断该表空间创建在OODB数据库上面?

请高手们帮我解答下,谢谢!!!

--创建sa用户

CREATE USER sa IDENTIFIED BY sa;

--赋予用户权限
GRANT dba TO sa;

GRANT EXECUTE  ON dbms_lock TO sa;

GRANT EXECUTE  ON dbms_crypto TO sa;

--创建OODB表空间
CREATE TABLESPACE OODB_AOMMS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\AOMMS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_AOMMS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\AOMMS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_PISS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\PISS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_PISS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\PISS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_EPMS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\EPMS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_EPMS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\EPMS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_OBCS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\OBCS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_OBCS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\OBCS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_FIMS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\FIMS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_FIMS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\FIMS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_RMS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\RMS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_RMS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\RMS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_HIST_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\HIST.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_HIST_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\HIST_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_LOGS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\LOGS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_LOGS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\LOGS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_BASIC_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\BASI.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_BASIC_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\BASI_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_VMS_TABLES 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\VMS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

CREATE TABLESPACE OODB_VMS_IDXS 
LOGGING 
DATAFILE 'E:\workspace_HX\OBCS_infor\TableSpace\VMS_IDXS.dbf' 
SIZE 100m 
AUTOEXTEND ON NEXT 100m MAXSIZE 10240m 
EXTENT MANAGEMENT LOCAL;

 

举报
共有9个答案 最后回答: 5年前
oracle中表空间可以被多个用户使用,表空间属于数据库实例
--- 共有 3 条评论 ---
IdleMan回复 @代俊建 : dbms_crypto 和dbms_lock是两个系统包 ,把包的执行权限赋予给用户sa 5年前 回复
站在巨人的肩膀上奋斗GRANT EXECUTE ON dbms_lock TO sa; GRANT EXECUTE ON dbms_crypto TO sa; 这两行什么意思?以及表空间命名有什么要求吗?谢谢 5年前 回复
站在巨人的肩膀上奋斗GRANT EXECUTE ON dbms_lock TO sa; GRANT EXECUTE ON dbms_crypto TO sa; 5年前 回复

只要有权限,用户都可以在相应表空间创建对象

至于判断表空间属于哪个数据库,你执行SQL,连接的是哪个实例,自然属于那个数据库
可以看环境变量$ORACLE_SID

lz 创建OODB表空间前并没有连接到刚创建的sa用户,当然就不属于sa了   至于到底属于哪个用户或者是那个数据库  只要在你  show user ,show parameter db_name 查询一下当前用户以及当前数据库名就都清楚了   或者根据$dba_  后台视图查看一下就好
--- 共有 2 条评论 ---
yexun回复 @代俊建 : 这只是赋予了sa执行这俩个系统包的权限而已。至于表空间命名符合基本命名规范就好了 5年前 回复
站在巨人的肩膀上奋斗谢谢。GRANT EXECUTE ON dbms_lock TO sa; GRANT EXECUTE ON dbms_crypto TO sa; 这两行什么意思?以及表空间命名有什么要求吗? 5年前 回复

1 从哪地方能判断该表空间是为用户sa创建的?

因为表空间不是为用户创建的,而是用户默认使用哪个表空间.所以这个没法判断.因为先有表空间,才能有用户使用此表空间.

怎么判断该表空间创建在OODB数据库上面?

 oracle可以认为一个instance是一个数据库.所以你在哪个oracle上执行sql语句,就是在哪个数据库上.这一点和postgresql是不一样的



引用来自“wxmqwe”的答案

1 从哪地方能判断该表空间是为用户sa创建的?

因为表空间不是为用户创建的,而是用户默认使用哪个表空间.所以这个没法判断.因为先有表空间,才能有用户使用此表空间.

怎么判断该表空间创建在OODB数据库上面?

 oracle可以认为一个instance是一个数据库.所以你在哪个oracle上执行sql语句,就是在哪个数据库上.这一点和postgresql是不一样的



谢谢您的回答,我理解了。还有表空间的命名上有要求吗?     请看这两个名字:OODB_AOMMS_TABLE  OODB_AOMMS_IDXS,目前,我知道OODB数据库的名字,AOMMS是项目的名字,TABLE是表空间的意思,IDXS怎么理解,不这样命名可以吗?我创建的这个表空间是为一个大系统创建的,而该系统包含多个项目,而AOMMS就是其中之一,不这样命名,每个子系统能对应自己的表空间吗?期待您的回复

表空间命名就相当于你给他起一个名字,这个是参照你们的开发规范,没有什么限制.随便写也行,就像你写java类给他命名一样.idxs是索引表空间啊.从你的命名字符猜的.这也是规范的好处.如果你写abc,我可能就不知道这个表空间是干什么的.

你说的子系统不知道是一个什么概念,如果想做细粒度控制.你可以在创建表的时候指定表存放的tablespace.如果你仅仅写create table t_name(col_name int );这样,就会将t_name分配给表的owenr的默认表空间.

--- 共有 1 条评论 ---
站在巨人的肩膀上奋斗嗯,谢了 5年前 回复
顶部