關(guān)于 sql server 數據庫查詢(xún)數據或執行存儲過(guò)程時(shí),出現類(lèi)似 "沒(méi)有dbo權限"、"找不到 dbo.XXX 對象"等的解決方法
1. 出現這個(gè)問(wèn)題的原因是因為當前連接數據庫的登錄用戶(hù)不是 dbo 權限,所以此用戶(hù)不能操作所有者為 dbo 的對象。為什么不開(kāi)放 dbo 權限:因為如果客戶(hù)的程序有問(wèn)題(比如有注入漏洞)、或數據庫密碼泄漏等,如果當前用戶(hù)有 dbo 權限的話(huà),會(huì )給數據庫服務(wù)器帶來(lái)安全隱患,所以我司的數據庫都不開(kāi)放 dbo 權限,而我們給用戶(hù)開(kāi)放了datareader、datawriter、ddladmin 等權限,這些權限一般情況下是足夠的。
2. 用戶(hù)在初始化數據的時(shí)候,比如通過(guò)企業(yè)管理器執行導入數據的 SQL ,或通過(guò)某些網(wǎng)站安裝程序初始化的時(shí)候,這些原始的初始化數據中的對象所有者可能是 dbo ,這將會(huì )導致在初始化數據后,數據庫的當前登錄用戶(hù)沒(méi)有權限操作這些對象。