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