成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server實例之間傳輸登錄與密碼的描述

數據庫 SQL Server
我們今天是要和大家一起討論的是在SQL Server實例之間傳輸登錄與密碼,下面的文章就是對其相關內容的具體介紹,望你能有所收獲。

如果你在SQL Server實例之間傳輸登錄和密碼的實際操作中,你對SQL Server實例之間傳輸登錄和密碼有不解之處時,你可以通過以下的文章對其的實際應用與功能有所了解,以下是文章的具體介紹,望你瀏覽完以下的內容會有所收獲。

概要

在將數據庫移動到新服務器后,用戶可能無法登錄到新服務器。相反,他們會收到下面的錯誤消息:

Msg 18456, Level 16, State 1 Login failed for user '%ls'.

您必須將登錄和密碼傳輸到新服務器。本文介紹如何將登錄和密碼傳輸到新服務器。

如何在運行 SQL Server 7.0 的服務器之間傳輸登錄和密碼

SQL Server 7.0 數據轉換服務 (DTS) 對象傳輸功能可在兩臺服務器之間傳輸登錄和用戶,但它不傳輸 SQL Server 驗證登錄的密碼。要將登錄和密碼從一臺運行 SQL Server 7.0 的服務器傳輸到另一臺運行 SQL Server 7.0 的服務器,請執行“在不同版本的 SQL Server 之間傳輸登錄和密碼的完整解決方案”一節中的步驟。

如何從 SQL Server 7.0 向 SQL Server 2000 或者在運行 SQL Server 2000 的服務器之間傳輸登錄和密碼

要從 SQL Server 7.0 服務器向 SQL Server 2000 的一個實例或者在 SQL Server 2000 的兩個SQL Server實例之間傳輸登錄和密碼,可以使用 SQL Server 2000 中新的 DTS 包傳輸登錄任務。為此,請按照下列步驟操作:1. 連接到 SQL Server 2000 目標服務器,移動到 SQL Server 企業管理器中的數據轉換服務,展開此文件夾,右鍵單擊“本地包”,然后單擊“新增包”。

2. 在 DTS 程序包設計器打開后,單擊“任務”菜單上的“傳輸登錄任務”。根據需要完成有關“源”、“目標”和“登錄”選項卡的信息。

 

重要說明:SQL Server 2000 目標服務器不能運行 64 位版本的 SQL Server 2000。64 位版本 SQL Server 2000 的 DTS 組件不可用。如果要從其他計算機上的 SQL Server 實例中導入登錄,您的 SQL Server 實例必須在域帳戶下運行才能完成此任務。

 

 

注意:DTS 方法將傳輸密碼,但不會傳輸原始 SID。如果登錄不是使用原始 SID 創建的,而且用戶數據庫也被傳輸到一臺新服務器,則該數據庫用戶將從該登錄中孤立出去。要傳輸原始 SID 并繞過被孤立的用戶,請執行“在不同版本的 SQL Server 之間傳輸登錄和密碼的完整解決方案”一節中的步驟。

 

 

在不同版本的 SQL Server 之間傳輸登錄和密碼的完整解決方案

 

此方法適用于以下情況:

從 SQL Server 7.0 向 SQL Server 7.0 傳輸登錄和密碼。

從 SQL Server 7.0 向 SQL Server 2000 傳輸登錄和密碼。

從 SQL Server 7.0 向 SQL Server 2005 傳輸登錄和密碼。

在運行 SQL Server 2000 的服務器之間傳輸登錄和密碼。

從 SQL Server 2000 向 SQL Server 2005 傳輸登錄和密碼。

注意:請查看本文末尾的備注,以了解有關下列步驟的重要信息。

要在不同版本的 SQL Server 之間傳輸登錄和密碼,請按下列步驟操作:1. 在源 SQL Server 上運行以下腳本。此腳本可在 master 數據庫中創建名為 sp_hexadecimal 和 sp_help_revlogin 的兩個存儲過程。請在完成過程的創建之后繼續執行第 2 步。

注意:下面的過程取決于 SQL Server 系統表。這些表的結構在 SQL Server 的不同版本之間可能會有變化,請不要直接從系統表中選擇。

  1. ----- Begin Script, Create sp_help_revlogin procedure  
  2. ----- USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal   
  3. GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256),  
  4. @hexvalue varchar(256) OUTPUT AS DECLARE @charvalue varchar(256) DECLARE  
  5. @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT   
  6. @i = 1 SELECT @length = DATALENGTH (@binvalue) SELECT   
  7. @hexstring = '0123456789ABCDEF' WHILE (@i <= @length) BEGIN DECLARE   
  8. @tempint int DECLARE @firstint int DECLARE @secondint int SELECT @tempint =   
  9. CONVERT(int, SUBSTRING(@binvalue,@i,1)) SELECT @firstint = FLOOR(@tempint/16)  
  10. SELECT @secondint = @tempint - (@firstint*16) SELECT @charvalue =   
  11. @charvalue + SUBSTRING(@hexstring, @firstint+1, 1) + SUBSTRING(@hexstring, @secondint+1, 1)   
  12. SELECT @i = @i + 1 END SELECT @hexvalue = @charvalue GO IF OBJECT_ID ('sp_help_revlogin')  
  13. IS NOT NULL DROP PROCEDURE sp_help_revlogin GO CREATE PROCEDURE sp_help_revlogin  
  14. @login_name sysname = NULL AS DECLARE @name sysname DECLARE @xstatus int DECLARE   
  15. @binpwd varbinary (256) DECLARE @txtpwd sysname DECLARE @tmpstr varchar (256) DECLARE  
  16. @SID_varbinary varbinary(85) DECLARE @SID_string varchar(256) IF (@login_name IS NULL)   
  17. DECLARE login_curs CURSOR FOR SELECT sid, name, xstatus, password FROM master..  
  18. sysxlogins WHERE srvid IS NULL AND name <> 'sa' ELSE DECLARE login_curs CURSOR FOR   
  19. SELECT sid, name, xstatus, password FROM master..sysxlogins WHERE srvid IS NULL AND name =  
  20. @login_name OPEN login_curs FETCH NEXT FROM login_curs INTO @SID_varbinary, @name,   
  21. @xstatus, @binpwd IF (@@fetch_status = -1) BEGIN PRINT 'No login(s) found.'  
  22. CLOSE login_curs DEALLOCATE login_curs RETURN -1 END SET @tmpstr =   
  23. '/* sp_help_revlogin script ' PRINT @tmpstr SET @tmpstr = '** Generated ' + CONVERT  
  24. (varchar, GETDATE()) + '>2.   

在創建 sp_help_revlogin 存儲過程后,請從源服務器上的查詢分析器中運行 sp_help_revlogin 過程。sp_help_revlogin 存儲過程可同時用于 SQL Server 7.0 和 SQL Server 2000。sp_help_revlogin 存儲過程的輸出是登錄腳本,該腳本可創建帶有原始 SID 和密碼的登錄。

保存輸出,然后將其粘貼到目標 SQL Server 上的查詢分析器中,并運行它。例如:EXEC master..sp_help_revlogin

備注

在目標 SQL Server 上運行輸出腳本之前,請認真查看此腳本。如果必須將登錄傳輸到與 SQL Server 源實例不在同一個域中的 SQL Server 實例,請編輯由 sp_help_revlogin 過程生成的腳本,并在 sp_grantlogin 語句中將域名替換為新的域名。

由于在新域中被授予訪問權的集成登錄與原始域中的登錄具有不同的 SID,因此數據庫用戶將從這些登錄中孤立出去。要解決這些孤立用戶,請查看以下項目符號項中引用的文章。如果在同一個域中的 SQL Server 實例之間傳輸集成登錄,則會使用相同的 SID,而且用戶不太可能被孤立。

在移動登錄之后,用戶將不再具有訪問已被同時移動的數據庫的權限。此問題稱為“孤立用戶”。如果嘗試將訪問此數據庫的權限授予該登錄,則可能會失敗,這表明該用戶已存在:

 

  1. Microsoft SQL-DMO (ODBC SQLState:42000) Error 15023:User or role '%s' already exists in the current database. 

有關如何將登錄映射到數據庫用戶以解決孤立的 SQL Server 登錄和集成登錄的說明,請查看相關文章: (http://support.microsoft.com/kb/240872/) 如何解決在運行 SQL Server 的服務器之間移動數據庫時的權限問題。

有關使用 sp_change_users_login 存儲過程逐個解決孤立用戶(僅能解決從標準 SQL 登錄中孤立出去的用戶)的說明,請查看相關文章: (http://support.microsoft.com/kb/274188/) PRB:聯機叢書中的“孤立用戶疑難解答”主題不完整。

如果傳輸登錄和密碼是向運行 SQL Server 的新服務器移動數據庫的一部分,請查看相關文章,以了解對所涉及的工作流程和步驟的說明: (http://support.microsoft.com/kb/314546/) 如何在運行 SQL Server 的計算機之間移動數據庫。

能夠這樣做的原因在于:sp_addlogin 系統存儲過程中的 @encryptopt 參數允許通過使用加密密碼來創建登錄。有關此過程的更多信息,請參見 SQL Server 聯機叢書中的“sp_addlogin (T-SQL)”主題。

默認情況下,只有 sysadminfixed 服務器角色的成員可以從 sysxlogins 表中進行選擇。除非 sysadmin 角色的成員授予了必要的權限,否則最終用戶將無法創建或運行這些存儲過程。

此方法不會嘗試傳輸特定登錄的默認數據庫信息,因為默認數據庫并不始終存在于目標服務器中。要為某個登錄定義默認數據庫,您可以使用 sp_defaultdb 系統存儲過程,方法是將登錄名和默認數據庫作為參數傳遞給該過程。有關使用此過程的更多信息,請參見 SQL Server 聯機叢書中的“sp_defaultdb”主題。

在 SQL Server 實例之間傳輸登錄的過程中,如果源服務器的排序順序不區分大小寫,而目標服務器的排序順序區分大小寫,則在將登錄傳輸到目標服務器后,必須以大寫形式輸入密碼中的所有字母字符。

如果源服務器的排序順序區分大小寫,而目標服務器的排序順序不區分大小寫,則無法通過本文所述的步驟使用已傳輸的登錄進行登錄,除非原始密碼不包括字母字符或原始密碼中的所有字母字符都是大寫字符。

如果兩個服務器都區分大小寫或者都不區分大小寫,則不會出現此問題。這是 SQL Server 處理密碼的方式所帶來的副作用。有關更多信息,請參見 SQL Server 7.0 聯機叢書中的“Effect>在目標服務器上運行“sp_help_revlogin”腳本的輸出時,如果該目標服務器已經定義了一個登錄,且該登錄名與腳本輸出中的某個登錄名相同,則在執行“sp_help_revlogin”腳本的輸出時,可能會看到下面的錯誤:

 

 

  1. Server:Msg 15025, Level 16, State 1, Procedure sp_addlogin, Line 56 The login 'test1' already exists. 

 

同樣,如果此服務器上存在其他登錄,且其 SID 值與您要嘗試添加的登錄的 SID 值相同,則會收到以下錯誤消息:

 

 

  1. Server:Msg 15433, Level 16, State 1, Procedure sp_addlogin, Line 93 Supplied parameter @sid is in use. 

 

因此,您必須仔細復查這些命令的輸出,檢查 sysxlogins 表的內容,并相應地解決這些錯誤。

特定登錄的 SID 值用作在 SQL Server 中實現數據庫級別訪問的基礎。因此,如果同一登錄在該數據庫級別(在該服務器上的兩個不同數據庫中)有兩個不同的 SID 值,則此登錄將僅能訪問其 SID 與該登錄的 syslogins 中的值相匹配的數據庫。

如果所討論的兩個數據庫已從兩個不同的服務器合并在一起,則可能出現這種情形。要解決此問題,必須使用 sp_dropuser 存儲過程從具有不匹配 SID 的數據庫中手動刪除所討論的登錄,然后再使用 sp_adduser 存儲過程添加它。

 

這篇文章中的信息適用于:

 

Microsoft SQL Server 7.0 標準版

 

  1. Microsoft SQL Server 2000 Personal Edition Service Pack 3 

Microsoft SQL Server 2000 標準版

  1. Microsoft SQL Server 2000 Workgroup Edition   
  2. Microsoft SQL Server 2000 Developer Edition   
  3. Microsoft SQL Server 2000 Enterprise Edition   
  4. Microsoft SQL Server 2005 Standard Edition   
  5. Microsoft SQL 2005 Server Workgroup   
  6. Microsoft SQL Server 2005 Developer Edition   
  7. Microsoft SQL 2005 Server Enterprise   

上述的相關內容就是對在SQL Server實例之間傳輸登錄和密碼的描述,希望會給你帶來一些幫助在此方面。 

【編輯推薦】

  1. SQL Server死鎖問題的解決與分析
  2. SQL Server 2000的分頁存儲過程的改寫
  3. SQL Server子查詢的作用是什么?
  4. SQL Server分布式分區視圖簡介
  5. 向外擴展SQL Server實現更高擴展性
責任編輯:佚名 來源: 網界網
相關推薦

2017-02-23 11:00:35

2010-07-06 08:36:55

SQL Server實

2009-05-11 14:19:49

數據遷移OracleSQL Server

2010-06-17 15:09:49

SQL Server

2010-07-05 13:36:21

SQL Server

2010-07-20 13:52:27

SQL Server

2011-07-06 13:09:11

SQL Server

2010-07-26 17:00:11

SQL Server查

2010-07-20 08:35:54

SQL Server鎖

2010-07-07 10:54:22

SQL Server索

2010-06-28 13:56:16

SQL Server代

2010-07-07 09:27:15

SQL Server索

2010-07-09 10:08:53

SQL Server函

2010-07-19 18:04:23

SQL Server鎖

2010-06-18 10:50:55

ms SQL Serv

2010-07-02 08:53:06

MIS SQL Ser

2010-07-02 14:34:35

SQL Server

2010-07-09 17:16:53

SQL Server數

2010-07-14 10:32:26

SQL Server查

2010-07-14 15:32:28

SQL Server
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕第一页在线 | 丝袜美腿一区二区三区 | 日韩视频在线免费观看 | 精品成人av | 一级毛片免费视频观看 | 日本中文字幕一区 | av电影一区 | 国产精品久久久久无码av | 欧美一极视频 | 国产精品久久久久久久久久久久久 | 国产一区二区三区在线看 | 成人一级毛片 | 欧美一区二区三区在线免费观看 | 久久人人国产 | 午夜久久久 | 一区二区国产在线 | 91 在线| 美女爽到呻吟久久久久 | 欧美中文字幕在线观看 | 在线观看国产www | 亚洲人成人一区二区在线观看 | www.日韩在线 | 国产玖玖| 亚洲精品视频一区 | 九九九视频在线观看 | 国产一区在线免费 | 欧美日韩电影免费观看 | 久久精品久久久 | 亚洲国产高清在线 | 久久久久久久久久久高潮一区二区 | 中文字幕av高清 | 亚洲色图图片 | 国产黄色大片在线免费观看 | 日本高清视频在线播放 | 激情欧美一区二区三区 | 九九亚洲 | 综合色站导航 | 人干人人 | 免费看片在线播放 | 国产精品久久久久久久免费大片 | 一区二区激情 |