是否可以通過模式在Oracle中對錶進行分區?按模式對Oracle表進行分區
我想要使用的具體示例是創建一個名爲「billing」的公共表空間,該公共表空間包含一個主事務表,該事務表具有事務所共有的所有元素(trans id,date,transaction completed等)而且還有一個用於存儲哪個Web應用程序創建該事務的「應用程序ID」的附加列。
換句話說,我想有幾個不同的Web應用程序和他們自己的模式來引用相同的公共事務表,但被「應用程序ID」過濾,只讓他們能夠看到由該應用程序創建的事務Web應用程序。例如,假設我們有兩個擁有自己的表空間(tablespace_1和tablespace_2)的Web應用程序,他們都可以看到公共的「billing.transactions」表,但每個表空間只能看到相對於其模式的事務,即tablespace_1只能看到具有「應用程序ID」爲1的事務,而tablespace_2只能看到「應用程序ID」爲2的事務。
這甚至可能嗎?
爲了記錄,我使用Oracle 11g。
你可以用意見做到這一點。即使該應用程序對基礎表沒有權限,該應用程序也可以在該視圖上獲得SELECT權限。 –
我想過,但缺點是我必須爲每個表空間創建一個視圖,如果我更改了基礎事務表,我將不得不更新它。在做了一些研究之後,我偶然發現了我認爲可行的解決方案。它被稱爲「虛擬專用數據庫」。這讓我可以動態控制哪些應用程序可以看到哪些數據,而不需要維護單獨的視圖。 – phelar