2012-07-09 45 views
2

我有一個架構[A],其中包含一個函數調用其他架構的[B]表[tableB]的包。 當我編譯軟件包時出現錯誤,「表或視圖無法退出」我搜索了一下,發現錯誤是因爲我的軟件包正在調用另一個模式的表。 後來我發現我必須在被調用的模式[B]中授予特許權。在Schema B的軟件包中,我寫了以下代碼我需要授予訪問權限以使用另一個架構中的一個架構的表格

procedure givePrivilege begin GRANT SELECT ON tableB TO A; 結束;

我剛接觸Oracle和Im,

回答

1

作爲B,您只需在表格上授予A SELECT特權。您不需要創建授予該特權的過程。您只需執行GRANT聲明登錄的同時B.

GRANT SELECT ON tableB 
    TO a 
+2

是的。我知道了。通過右鍵單擊表,我可以授予特權 – user1469630 2012-07-09 16:36:33

+0

@justin Cave:是否在模式A中爲表B創建同義詞?更好的是,我們也在Schema A中創建同義詞。 – 2012-07-09 16:55:43

+0

@GauravSoni - 'GRANT'不會創建同義詞,否。無論是在模式A中創建私有同義詞,還是在公共同義詞中,或者沒有同義詞,並明確包含模式名稱都很大程度上取決於情況。 – 2012-07-09 17:02:57

3

遵循以下步驟:

1)登錄到架構B
2)運行語句GRANT SELECT ON tableB TO A;
3)在包確保tableB被引用爲B.tableB
4)編譯軟件包。

相關問題