我是個不喜歡使用 Stored Produre 的人,大都限縮它的使用場景,像是產生報表或是產生報表,
還是只能是產生報表,今天遇到這個狀況,更加深了我的理念...
這次的案例是
A DB 的 A_SP 呼叫 B DB 的 B_SP 而且
B_SP 需要查詢 C DB 的 C_TABLE
以上 A_DB.SP 其實是需要開通 C_DB.C_TABLE 讀取(select) 權限
一開始看到時,我真的以為應該只要 B_DB.SP 有開通讀取 C_DB.C_TABLE 即可,但是實際
用程式去執行時,其實是使用 A_SP 所在帳號的權限來執行的,所以程式會出錯。
但是關鍵來了,其實 A_SP與 B_SP 都是當時不同單位建置的,當時也有互相確認權限的情境
,但是今天 B_SP 需要新增加邏輯,但是處理這樣任務的人,其實不知道有這一段權限的考量
,所以造成原本使用到 A_SP 的功能都會壞掉,是不是很雷..
你不殺伯仁,伯仁卻因你而死
Debug 半天,原來發現是別人的SP加了邏輯(洋蔥),哭阿~
沒有留言:
張貼留言