情境1:
資料庫裡有A跟F兩個使用者。A使用者下有一個table: B。我要在F使用者下新建一個view: B,內容跟A(user)的B(table)完全一樣。
到目前為止其實還好。就是先grant select B(table)的權限給F(user)即可成功的建起view B。
情境2: (問題在這)
這個F(user)下的B(view)是什麼用途呢~? 是要給A(user)用的XD。所以我說這是件詭異的事情,自己有資料不用,偏偏要去用別人的XD(特殊需求特殊需求~)。
照說如果A(user)要可以select F(user)下的B(view),那也應該做跟上面一樣的事情: grant select B(view)的權限給A(user)。
就在這個moment!! 如果這麼做,就會收到如標題那樣的錯誤訊息。
至於為什麼呢? 這樣說好了,我今天答應A給他"參考"我的作業,如果A沒經過我的同意,又把我的作業給C看,那算什麼!!! 分數三等份阿!!! 怎麼行呢? XD
假如我答應借A看我的作業的同時,也說: "去散播我的愛吧~"(就是你可以自行把我的東西在借給下個人),那樣就不會有問題。所以回到資料庫上也一樣。在授權給F(user)的時候,必須准許他也可以授權給別人:
SQL> grant select on A.B to F with grant option;
that's all!! 這樣F(user)的B(view)也就能再做授權給別人的動作了(即使那個人是A)。
寫完還要檢查一下那些A阿F阿B阿table阿view阿有沒有搞錯= = 小複雜
Post a Comment