按模式对 Oracle table 进行分区

Partitioning an Oracle table by schema

是否可以在 Oracle 中按模式对 table 进行分区?

我想使用的具体示例是创建一个名为 "billing" 的 public table 空间,其中包含一个主交易 table交易共有的元素(交易 ID、日期、交易完成等),但也有一个额外的列用于 "application id",用于存储哪个 Web 应用程序创建了交易。

换句话说,我希望有几个不同的 Web 应用程序具有自己的模式来引用相同的 public 事务 table,但被 "application id" 过滤并且仅让他们能够看到该 Web 应用程序创建的交易。

例如,假设我们有两个 Web 应用程序,它们有自己的 table 空间(tablespace_1 和 tablespace_2)并且它们都可以看到 public "billing.transactions" table,但每个 table 空间只能看到与其架构相关的那些交易,即 tablespace_1 只能看到 "application id" 为 1 的交易,并且 tablespace_2 只能看到 "application id" 为 2.

的交易

这可能吗?

郑重声明,我使用的是 Oracle 11g。

好的,在进行了一些谷歌搜索之后,我设法找到了我想要的解决方案。它被称为 "Virtual Private Database"。

这让我可以自动将应用程序 ID 附加到架构用户的查询,并强制架构用户的完整性,以便他们只能 insert/update/select 他们应该能够看到的交易。