- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
在進行站點搬遷時,我們通常會把sql server數據庫備份成.bak文件,再到新的sql server環境下還原。在網站搭建完成后訪問時可能會出現“對象名無效”的錯誤,如下圖:
以下是sql server出現報錯的原因以及解決方法:
這其實是sql server孤立用戶的問題。
如上圖所示,a0805120154為恢復完的數據庫。該數據庫的很多表是用戶a0805120154建立的,但是當我們恢復sql server數據庫后,a0805120154用戶此時就成了孤立用戶。沒有與之對應的sql server登錄用戶名,哪怕你建立了一個a0805120154登錄用戶名,而且是以前的用戶密碼,用該用戶登錄后同樣沒辦法操作以前屬于a0805120154的用戶表。
比如在sql server查詢語句中訪問上圖中的三個視圖時,就會提示“對象名無效”
這個問題有兩種辦法解決。
先說解決的前提條件。 首先,如上還原sql server數據庫a0805120154。
數據庫恢復后,就產生了孤立用戶a0805120154。 然后,用sa用戶或者具有DBA權限的sql server用戶登錄,創建一個a0805120154數據庫登錄用戶,密碼隨便設置,也可以和以前的保持一致。
我們用它來對應孤立的a0805120154用戶,使登錄用戶和sql server數據庫的孤立用戶對應起來,其實我們建立了同樣名稱的數據庫登錄用戶后,數據庫中的表我們照樣不能使用,因為sid的不同,就是系統登錄表和數據庫用戶表中的用戶名相同, 單是sid字段數據庫中的還是以前舊系統的sid值,所以我們就要把它對應成我們新建的。sql server數據庫就是靠sid來識別用戶的。
這里可以使用sql server存儲過程sp_change_users_login。它有三種動作,分別是report,update_one和auto_fix。
運行sp_change_users_login 'report',系統會列出當前數據庫的孤立用戶數。
我們只需要選擇當前數據庫為a0805120154,然后運行 sp_change_users_login 'update_one','a0805120154','a0805120154' --系統就會提示修復了一個孤立用戶。
重新打開網站,問題就解決了。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP