講解孤立用戶和對象名無效問題的解決方法[2]

發表于:2008-06-16來源:作者:點擊數: 標簽:用戶孤立講解對象解決
講解孤立用戶和對象名無效問題的解決方法[2] 作者:GOD 來源:希賽網 方法二:使登錄用戶和 數據庫 的孤立用戶對應起來 其實我們建立了同樣名稱的數據庫登錄用戶后,數據庫中的表我們照樣不能使用時因為sid的不同,就是系統登錄表和數據庫用戶表中的用戶名相

講解孤立用戶和對象名無效問題的解決方法[2]

作者:GOD 來源:希賽網

  方法二:使登錄用戶和數據庫的孤立用戶對應起來

  其實我們建立了同樣名稱的數據庫登錄用戶后,數據庫中的表我們照樣不能使用時因為sid的不同,就是系統登錄表和數據庫用戶表中的用戶名相同,單是sid字段,數據庫中的還是以前舊系統的sid值,所以我們就要把它對應成我們新建的,數據庫靠sid來識別用戶。

  這里可以使用存儲過程sp_change_users_login。它有三種動作,分別是report,update_one和auto_fix。

  運行下面的代碼,系統會列出當前數據庫的孤立用戶數。

  sp_change_users_login 'report'

  我們只需要選擇當前數據庫為testdb,然后運行sp_change_users_login 'update_one','test','test'系統就會提示修復了一個孤立用戶。

  如果沒有建立test的登錄用戶,還可以用sp_change_users_login 'Auto_Fix', 'test', NULL, 'testpassword'來創建一個登錄用戶名為test,密碼為testpassword的用戶與之對應。

  好了,到這里通常情況下,數據庫對象得到訪問問題已經解決了。如果有多個數據庫中有同一個用戶的數據表,只需要選擇不同的數據庫,執行update_one的那個就行了。

  二、對象名‘xxxx’無效的問題

  這里可能會有人遇到對象名 ‘xxxx’無效的問題。系統表卻不會產生這個問題,而用戶表還要加上用戶名,然后是表明才能訪問,比如select * from author,會說對象名 author 無效,而用select * from test.author就可以訪問,這個是用戶首選身份的問題。

  解決很簡單,就是察看test登錄用戶是否具有dba的權限或者系統管理的權限,有的話去掉就行了。

  因為如果用戶有dba身份,那么它登陸后的默認表空間是dbo的系統表空間,所以去掉了之后,就會以正常的test表空間訪問數據表了。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97