【发布时间】:2009-01-11 14:23:03
【问题描述】:
我和我的同事维护的应用程序在后端有一个 Oracle 数据库。我们正在考虑偶尔以“受限”模式运行应用程序,其中一个数据库表空间设置为只读。我们可以轻松地将必要的表和索引移动到单独的表空间中,这些表空间将在“受限”模式下可写。但是,尽管进行了多次 Google 搜索,我仍无法确定 Oracle 在哪个表空间中存储序列。
This answer 提到序列值存储在 SYSTEM.SEQ$ 表中。我现在无法访问 Oracle 数据库,但我猜这个表存在于系统表空间之一中。我们设置为只读的表空间不是系统表空间,而是我们自己的数据表空间之一。
在开发数据库上,我可以成功地从相关表空间设为只读的序列中选择。
我怀疑让这个表空间只读不会有问题,但我宁愿我的怀疑得到证实,而不仅仅是临时实验。有人可以请教我吗?
【问题讨论】:
-
也许您应该考虑通过 GRANT/REVOKE 修改权限,而不是采用这种表空间方法。特权旨在让您控制谁可以插入/更新/删除/选择,而不是表空间。