我正在做一個相當大的項目,這是由人誰是現在離開公司,開始有些維修編程...「無效的對象名稱:dbo.etc」錯誤的根本原因?
我剛纔備份的公司數據庫之一,然後將其重新連接到我們的測試服務器。這很多似乎工作正常。
然後我通過程序的通常登錄程序,該部分也似乎工作。
但是,一旦我到達需要執行存儲過程的程序中的一個點,我會收到一個錯誤,告訴我Invalid object name 'Informix.dbo.customer'
。
在原始數據庫上運行相同的函數可以正常工作,並返回我期望看到的數據。
對類似錯誤的解釋我發現似乎指的是Schema,但這就是事情變得有點奇怪的地方。原始數據庫沒有明顯有任何Schema;在它的「安全」文件夾中,它只有一個包含dbo的「用戶」文件夾和一個包含「數據庫角色」文件夾的「角色」文件夾,以及通常的db_owner等等東西,以及一個名爲「應用程序角色」。
已備份和恢復的數據庫上的Security文件夾充滿了各種廢話。除了dbo之外,還有三個用戶,一個「Schemas」文件夾,「Certificates」文件夾,兩個加密密鑰文件夾......我無法刪除其中的任何一個。
從我對SQL登錄系統的理解有限,我登錄的用戶正在從這個隨機垃圾集合中獲得非dbo權限,因此被拒絕訪問數據庫所擁有的部分數據庫DBO。
爲了我自己的理解,拋出這些Invalid object name
錯誤的問題的核心是什麼?而對於實際問題,我能做些什麼來糾正這種情況,實際上我正在使用的測試數據庫工作方式與其在活動測試數據庫中的工作方式相同?
恢復的數據庫是否與生產數據庫具有相同的名稱?數據庫名稱是否可能硬編碼到應用程序中? – 2010-10-19 12:11:34
對不起,意思是說明這一點然後忘記了。我已經使用執行存儲過程函數從SQL Server Management Studio中測試了存儲過程,存儲過程在原始數據庫上運行,而不是在新數據庫上運行。數據庫名稱是相同的,但。 – Frosty840 2010-10-19 12:15:23