2025年7月7日 星期一

Stored Produre 跨DB存取注意事項

我是個不喜歡使用 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加了邏輯(洋蔥),哭阿~



沒有留言:

張貼留言