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