
在同一個DB下,用戶A創建了一個Table(student),用戶B無法訪問。如果B想要訪問,就需要A賦予B權限。

登錄用戶A執行下面語句:
GRANT SELECT, INSERT, UPDATE, DELETE on A.student to B;
在Student表前面加上A.(schema)的目的之一是為了安全,如果此時是用戶A登錄,這個語句就不會出錯,如果此時不是用戶A登錄,執行該語句就會出錯,這樣就保證了正確性和安全性。
此時登錄用戶B就能對student這個表進行操作,但是執行語句要在table名前加上Schema。
如:
select * from B.student;
這樣就會比較麻煩,所以我們要建立同義詞。同義詞的作用可以理解為B.student和student是一樣的。
登錄用戶B,執行下面語句:
CREATE SYNONYM B.student FOR A.student;
前面不加B.也是可以的,效果一樣
CREATE SYNONYM student FOR A.student;
加schema的目的是為了看起來更明朗。
建完同義詞,這是用戶B就可以更方便的操作student這個table了,不用再加上schema的前綴
select * from student;
