关于用Oracle作后台的开发疑问

ChinaITOldMan 2019-07-31 04:14:06


安装Oracle时,在安装过程中顺便创建了一个数据库Test,系统自动生成了 System01.dbf、sysaux01.dbf、Temp01.dbf、Example01.dbf、User01.dbf等这些文件。

现第一次正式用Oracle做开发 ,有以下疑问请教各位大虾,是用下面1的方式还是用2的方式,或哪种比较多,谢谢!

1. 在第一次正式进行开发前,一般是不是需要建立一个自己的永久表空间与一个临时表空间,及建立表空间对应的数据文件;然后建立用户,在建立用户的过程中,把永久表空间与临时表空间之前刚建立的永久表空间与临时表空间是吧?

2. 还是直接用系统的(建立数据库时生成的表空间、数据文件、系统用户与架构)的表空间、数据文件与schema保存tables或views等吗 ?

若是用1方式,若备份数据库,是不是只需要备份自己建立的数据库文件就可以完成数据的备份。
...全文
74 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChinaITOldMan 2019-08-01
  • 打赏
  • 举报
回复
引用 12 楼 minsic78 的回复:
默认情况下,用户对每个表空间都没有写入权限,Oracle中写入表空间通过配额quota实现,你可以设置用户在各个表空间上使用空间的配额。还有一种情况不推荐:就是赋予unlimited tablespace的系统权限。尤其需要注意的是:当你将resource这个角色权限给予用户的时候,同时会隐含给unlimited tablespace系统权限,如果要实现表空间配额的严格控制,你需要在这种情况下显式将这个权限revoke掉,像你想要控制单个用户只能在单个表空间下写入数据,肯定不能给unlimited tablespace系统权限,而是应该自己调整quota。只有表、索引这些对象有物理空间占用,其他基本只有定义,放在系统表空间,你无法选择。
谢谢您!
minsic78 2019-08-01
  • 打赏
  • 举报
回复
默认情况下,用户对每个表空间都没有写入权限,Oracle中写入表空间通过配额quota实现,你可以设置用户在各个表空间上使用空间的配额。还有一种情况不推荐:就是赋予unlimited tablespace的系统权限。尤其需要注意的是:当你将resource这个角色权限给予用户的时候,同时会隐含给unlimited tablespace系统权限,如果要实现表空间配额的严格控制,你需要在这种情况下显式将这个权限revoke掉,像你想要控制单个用户只能在单个表空间下写入数据,肯定不能给unlimited tablespace系统权限,而是应该自己调整quota。只有表、索引这些对象有物理空间占用,其他基本只有定义,放在系统表空间,你无法选择。
ChinaITOldMan 2019-08-01
  • 打赏
  • 举报
回复
引用 8 楼 weixin_40290083 的回复:
[quote=引用 5 楼 mcxhh2005的回复:][quote=引用 4 楼 weixin_40290083 的回复:] oracle的表空间的其中的一个功能就是可以单独停止某个表空间,而其它的表空间不停止,如果多个业务系统使用同一个ORACLE实例,但各业务系统的数据库表在不同的表空间中,那么因维护问题,要停止某个业务的数据库服务,则可以停止对应的表空间,而其它的表空间是不停止的,那么其它的业务系统也不受影响。但是不把不同的业务系统全部放在一个表空间时,因某个业务系统需要停止时,停止表空间后其它业务系统也不能正常工作,常常这种情况是不允许的。 oracle推荐不同的业务系统使用不同的表空间,并且不要将业务系统的数据放在system表空间中。
谢谢您!明白 若是多个用户开发一个系统,一般是大家共用一个Oracle数据库帐号登录系统,还是各用个各的帐号登录系统,帮创建的表都保存在同一个schema下?[/quote] 只要是同一个业务系统就可以使用同一个帐户,也可以使用不同的帐号,只要帐号对库有权限就行[/quote] 谢谢您,还有一些其他问题再另外发帖,到时再麻烦您们!
ChinaITOldMan 2019-08-01
  • 打赏
  • 举报
回复
谢谢你! 还麻烦恁请教个权限的问题,比如用户A只能在表空间TA与TB下建立数据库对象(如:table、view、package等)怎样设置权限,而用户B只能在表空间TB下建立数据库对象(如:table、view、package等)怎样设置权限? 谢谢!
minsic78 2019-07-31
  • 打赏
  • 举报
回复
引用 7 楼 mcxhh2005 的回复:
另外还请教个问题,是不是建立一个User就对应一个schema? 谢谢!
用户与schema的概念与很多关系数据库有所不同,可以说用户与schema是绑定的,创建用户的时候,同名schema自动创建,只要有了创建某类对象的权限,就可以在自己的schema下创建对象,如果想要访问其他用户schema的对象,必须由dba或者其他对象的属主赋权。 所以,如果是同一个系统,使用一个用户也没关系,但是如果同一个系统各个用户之间有权限隔离需求,那么就需要创建多个用户,另外有种更复杂的:表等对象放在一个隔离用户里,其他用户如果访问这其中的对象,就需要有权限的用户赋予各种权限,比如select、insert、update、delete等基本权限。
weixin_40290083 2019-07-31
  • 打赏
  • 举报
回复
引用 5 楼 mcxhh2005的回复:
[quote=引用 4 楼 weixin_40290083 的回复:] oracle的表空间的其中的一个功能就是可以单独停止某个表空间,而其它的表空间不停止,如果多个业务系统使用同一个ORACLE实例,但各业务系统的数据库表在不同的表空间中,那么因维护问题,要停止某个业务的数据库服务,则可以停止对应的表空间,而其它的表空间是不停止的,那么其它的业务系统也不受影响。但是不把不同的业务系统全部放在一个表空间时,因某个业务系统需要停止时,停止表空间后其它业务系统也不能正常工作,常常这种情况是不允许的。 oracle推荐不同的业务系统使用不同的表空间,并且不要将业务系统的数据放在system表空间中。
谢谢您!明白 若是多个用户开发一个系统,一般是大家共用一个Oracle数据库帐号登录系统,还是各用个各的帐号登录系统,帮创建的表都保存在同一个schema下?[/quote] 只要是同一个业务系统就可以使用同一个帐户,也可以使用不同的帐号,只要帐号对库有权限就行
ChinaITOldMan 2019-07-31
  • 打赏
  • 举报
回复
另外还请教个问题,是不是建立一个User就对应一个schema? 谢谢!
ChinaITOldMan 2019-07-31
  • 打赏
  • 举报
回复
引用 3 楼 minsic78 的回复:
[quote=引用 2 楼 mcxhh2005 的回复:] [quote=引用 1 楼 minsic78 的回复:] 第一种方式,把应用数据放到系统表空间从很多方面来讲,都是严重忌讳的 至于备份,看你恢复的需求,如果逻辑备份满足你对数据恢复的需求,自然备份你想要的应用数据即可
那就是说在Oracle做后台数据库,是用第二种方式吧?谢谢! [/quote] 第一种。。。[/quote] 谢谢您!明白 若是多个用户开发一个系统,一般是大家共用一个Oracle数据库帐号登录系统,还是各用个各的帐号登录系统,帮创建的表都保存在同一个schema下?
ChinaITOldMan 2019-07-31
  • 打赏
  • 举报
回复
引用 4 楼 weixin_40290083 的回复:
oracle的表空间的其中的一个功能就是可以单独停止某个表空间,而其它的表空间不停止,如果多个业务系统使用同一个ORACLE实例,但各业务系统的数据库表在不同的表空间中,那么因维护问题,要停止某个业务的数据库服务,则可以停止对应的表空间,而其它的表空间是不停止的,那么其它的业务系统也不受影响。但是不把不同的业务系统全部放在一个表空间时,因某个业务系统需要停止时,停止表空间后其它业务系统也不能正常工作,常常这种情况是不允许的。 oracle推荐不同的业务系统使用不同的表空间,并且不要将业务系统的数据放在system表空间中。
谢谢您!明白 若是多个用户开发一个系统,一般是大家共用一个Oracle数据库帐号登录系统,还是各用个各的帐号登录系统,帮创建的表都保存在同一个schema下?
weixin_40290083 2019-07-31
  • 打赏
  • 举报
回复
oracle的表空间的其中的一个功能就是可以单独停止某个表空间,而其它的表空间不停止,如果多个业务系统使用同一个ORACLE实例,但各业务系统的数据库表在不同的表空间中,那么因维护问题,要停止某个业务的数据库服务,则可以停止对应的表空间,而其它的表空间是不停止的,那么其它的业务系统也不受影响。但是不把不同的业务系统全部放在一个表空间时,因某个业务系统需要停止时,停止表空间后其它业务系统也不能正常工作,常常这种情况是不允许的。 oracle推荐不同的业务系统使用不同的表空间,并且不要将业务系统的数据放在system表空间中。
minsic78 2019-07-31
  • 打赏
  • 举报
回复
引用 2 楼 mcxhh2005 的回复:
[quote=引用 1 楼 minsic78 的回复:] 第一种方式,把应用数据放到系统表空间从很多方面来讲,都是严重忌讳的 至于备份,看你恢复的需求,如果逻辑备份满足你对数据恢复的需求,自然备份你想要的应用数据即可
那就是说在Oracle做后台数据库,是用第二种方式吧?谢谢! [/quote] 第一种。。。
ChinaITOldMan 2019-07-31
  • 打赏
  • 举报
回复
引用 1 楼 minsic78 的回复:
第一种方式,把应用数据放到系统表空间从很多方面来讲,都是严重忌讳的 至于备份,看你恢复的需求,如果逻辑备份满足你对数据恢复的需求,自然备份你想要的应用数据即可
那就是说在Oracle做后台数据库,是用第二种方式吧?谢谢!
minsic78 2019-07-31
  • 打赏
  • 举报
回复
第一种方式,把应用数据放到系统表空间从很多方面来讲,都是严重忌讳的 至于备份,看你恢复的需求,如果逻辑备份满足你对数据恢复的需求,自然备份你想要的应用数据即可

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧