55555555555555555

תרגומי מאמרים תרגומי מאמרים
Article ID: 246133 - View products that this article applies to.
הרחב הכל | כווץ הכל

On This Page

תקציר

לאחר שתעביר מסדי נתונים לשרת חדש, משתמשים ייתכן שלא תוכל להיכנס לשרת החדש. במקום זאת, הם מקבלים את הודעת השגיאה הבאה:
Msg 18456, רמת 16, מצב 1
הכניסה נכשלה עבור המשתמש '%ls'.
עליך להעביר את כניסות והסיסמאות לשרת החדש. מאמר זה מתאר כיצד להעביר כניסות וסיסמאות לשרת חדש.

כיצד להעביר כניסות וסיסמאות בין שרתים שבהם פועל SQL Server 7.0

מעביר תכונת העברת אובייקט של SQL Server 7.0 נתונים המרה שירותים (DTS) כניסות ומשתמשים בין שני שרתים, אך לא יעברו את הסיסמאות עבור התחברויות לשרת SQL מאומת. כדי להעביר כניסות וסיסמאות משרת שבו פועל 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 2000, באפשרותך להשתמש DTS חבילת ההעברה כניסות הפעילות החדשה ב- SQL Server 2000. לשם כך, בצע את הפעולות הבאות:
  1. להתחבר לשרת היעד ב- SQL Server 2000, להעביר שירותי המרת נתונים ב- SQL Server Enterprise Manager, התיקיה expandthe, לחץ לחיצה ימנית על חבילות מקומיולאחר מכן לחץ על החבילה החדשה.
  2. לאחר DTS אריזת נפתח המעצב, לחץ על העברת פעילות כניסות בתפריט המשימות . השלם את המידע אודות המקור, היעדכניסות הכרטיסיות לפי הצורך.

    חשוב אין שרת היעד של SQL Server 2000 פועל את גירסת 64 סיביות של SQL Server 2000. רכיבי DTS עבור גירסת 64 סיביות של SQL Server 2000 לא יהיו זמינות. אם אתה מייבא כניסות מ instanceof שרת SQL במחשב נפרד, את המופע של SQL Server willmust לפעול תחת חשבון תחום כדי להשלים את המשימה.

    הערה השיטה DTS יעביר את הסיסמאות אך לא theoriginal ה-SID. אם כניסה לא נוצר על-ידי שימוש במזהה האבטחה המקורי userdatabases גם מועברים לשרת חדש, משתמשים במסד נתונים יהיה beorphaned מהכניסה. כדי להעביר את ה-SID המקורי לעקוף את orphanedusers, בצע את השלבים בסעיף "פתרון מלא לשם העברת כניסות וסיסמאות בין גירסאות שונות של SQL Server".

כיצד להעביר כניסות וסיסמאות בין המופעים של SQL Server 2005

לקבלת מידע נוסף אודות אופן העברת כניסות וסיסמאות בין המופעים של SQL Server 2005, לחץ על מספר המאמר הבא כדי להציג את המאמר הרלוונטי מתוך Microsoft Knowledge Base:
918992 כיצד להעביר את כניסות וסיסמאות בין המופעים של SQL Server 2005

פתרון מלא להעברת כניסות וסיסמאות בין גירסאות שונות של שרת SQL

לשם כך, השתמש באחת מהשיטות הבאות.
הערות
  • קבצי ה-script בהשיטות הבאות ליצור שתי שגרות מאוחסנות להן שם הפרוצדורה המאוחסנת sp_hexadecimal ועל הליך sp_help_revlogin המאוחסן במסד הנתונים הראשי .
  • קבצי ה-script תלויים טבלאות המערכת של שרת SQL.המבנה של טבלאות אלה עשויים להשתנות בין הגירסאות של שרת SQL. בחירת ישירות מתוך טבלאות המערכת אינה מומלצת.
  • סקור את ההערות בסוף מאמר זה לקבלת מידע חשוב אודות השיטות בשלבים.
  • שיטה 2 מקצה כניסות לתפקידים.

שיטה 1

שיטה זו חלה על התרחישים הבאים:
  • העברת כניסות וסיסמאות מ- SQL Server 7.0 ל- SQL Server 7.0.
  • העברת כניסות וסיסמאות מ- SQL Server 7.0 ל- SQL Server 2000.
  • העבר כניסות וסיסמאות בין שרתים הפועלים ב- SQL Server 2000.
כדי להעביר כניסות וסיסמאות בין גירסאות שונות של SQL Server, בצע את הפעולות הבאות:
  1. הפעל את התסריט המקור SQL Server. עם סיום יצירת את השגרה המאוחסנתsp_help_revlogin , המשך לשלב 2.
    ----- Begin Script, Create sp_help_revlogin procedure -----
    
    USE master
    GO
    IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL
      DROP PROCEDURE sp_hexadecimal
    GO
    CREATE PROCEDURE sp_hexadecimal
        @binvalue varbinary(256),
        @hexvalue varchar(256) OUTPUT
    AS
    DECLARE @charvalue varchar(256)
    DECLARE @i int
    DECLARE @length int
    DECLARE @hexstring char(16)
    SELECT @charvalue = '0x'
    SELECT @i = 1
    SELECT @length = DATALENGTH (@binvalue)
    SELECT @hexstring = '0123456789ABCDEF' 
    WHILE (@i <= @length) 
    BEGIN
      DECLARE @tempint int
      DECLARE @firstint int
      DECLARE @secondint int
      SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1))
      SELECT @firstint = FLOOR(@tempint/16)
      SELECT @secondint = @tempint - (@firstint*16)
      SELECT @charvalue = @charvalue +
        SUBSTRING(@hexstring, @firstint+1, 1) +
        SUBSTRING(@hexstring, @secondint+1, 1)
      SELECT @i = @i + 1
    END
    SELECT @hexvalue = @charvalue
    GO
    
    IF OBJECT_ID ('sp_help_revlogin') IS NOT NULL
      DROP PROCEDURE sp_help_revlogin 
    GO
    CREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL AS
    DECLARE @name    sysname
    DECLARE @xstatus int
    DECLARE @binpwd  varbinary (256)
    DECLARE @txtpwd  sysname
    DECLARE @tmpstr  varchar (256)
    DECLARE @SID_varbinary varbinary(85)
    DECLARE @SID_string varchar(256)
    
    IF (@login_name IS NULL)
      DECLARE login_curs CURSOR FOR 
        SELECT sid, name, xstatus, password FROM master..sysxlogins 
        WHERE srvid IS NULL AND name <> 'sa'
    ELSE
      DECLARE login_curs CURSOR FOR 
        SELECT sid, name, xstatus, password FROM master..sysxlogins 
        WHERE srvid IS NULL AND name = @login_name
    OPEN login_curs 
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
    IF (@@fetch_status = -1)
    BEGIN
      PRINT 'No login(s) found.'
      CLOSE login_curs 
      DEALLOCATE login_curs 
      RETURN -1
    END
    SET @tmpstr = '/* sp_help_revlogin script ' 
    PRINT @tmpstr
    SET @tmpstr = '** Generated ' 
      + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'
    PRINT @tmpstr
    PRINT ''
    PRINT 'DECLARE @pwd sysname'
    WHILE (@@fetch_status <> -1)
    BEGIN
      IF (@@fetch_status <> -2)
      BEGIN
        PRINT ''
        SET @tmpstr = '-- Login: ' + @name
        PRINT @tmpstr 
        IF (@xstatus & 4) = 4
        BEGIN -- NT authenticated account/group
          IF (@xstatus & 1) = 1
          BEGIN -- NT login is denied access
            SET @tmpstr = 'EXEC master..sp_denylogin ''' + @name + ''''
            PRINT @tmpstr 
          END
          ELSE BEGIN -- NT login has access
            SET @tmpstr = 'EXEC master..sp_grantlogin ''' + @name + ''''
            PRINT @tmpstr 
          END
        END
        ELSE BEGIN -- SQL Server authentication
          IF (@binpwd IS NOT NULL)
          BEGIN -- Non-null password
            EXEC sp_hexadecimal @binpwd, @txtpwd OUT
            IF (@xstatus & 2048) = 2048
              SET @tmpstr = 'SET @pwd = CONVERT (varchar(256), ' + @txtpwd + ')'
            ELSE
              SET @tmpstr = 'SET @pwd = CONVERT (varbinary(256), ' + @txtpwd + ')'
            PRINT @tmpstr
    	EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
            SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name 
              + ''', @pwd, @sid = ' + @SID_string + ', @encryptopt = '
          END
          ELSE BEGIN 
            -- Null password
    	EXEC sp_hexadecimal @SID_varbinary,@SID_string OUT
            SET @tmpstr = 'EXEC master..sp_addlogin ''' + @name 
              + ''', NULL, @sid = ' + @SID_string + ', @encryptopt = '
          END
          IF (@xstatus & 2048) = 2048
            -- login upgraded from 6.5
            SET @tmpstr = @tmpstr + '''skip_encryption_old''' 
          ELSE 
            SET @tmpstr = @tmpstr + '''skip_encryption'''
          PRINT @tmpstr 
        END
      END
      FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd
      END
    CLOSE login_curs 
    DEALLOCATE login_curs 
    RETURN 0
    GO
     ----- End Script -----
    
    
  2. לאחר שתיצור את השגרה המאוחסנת sp_help_revlogin , הפעל את השגרה sp_help_revlogin מתוך ניתוח שאילתה בשרת המקור. ניתן להשתמש בהליך sp_help_revlogin מאוחסנים על שרת SQL גירסה 7.0 ו- SQLServer 2000. הפלט של הפרוצדורה המאוחסנת sp_help_revlogin הוא סקריפטים של כניסה יוצר כניסות עם theoriginal SID ואת הסיסמה. לשמור את הפלט, ולאחר מכן להדביק והפעל אותו ב- QueryAnalyzer היעד לשרת SQL. לדוגמה:
    EXEC master..sp_help_revlogin
    

שיטה 2

שיטה זו חלה על התרחישים הבאים:
  • העברת כניסות וסיסמאות מ- SQL Server 7.0 ל- SQL Server 2005.
  • אתה מעביר כניסות וסיסמאות מ- SQL Server 2000 SQL Server 2005.
  • עליך להקצות כניסות תפקידים.
כדי להעביר כניסות וסיסמאות בין גירסאות שונות של SQL Server ולאחר מכן להקצות כניסות לתפקידים, בצע את הפעולות הבאות:
  1. הפעל את התסריט המקור SQL Server.
    USE master 
    GO 
    IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL 
    DROP PROCEDURE sp_hexadecimal 
    GO 
    CREATE PROCEDURE sp_hexadecimal 
    @binvalue varbinary(256), 
    @hexvalue varchar(256) OUTPUT 
    AS 
    DECLARE @charvalue varchar(256) 
    DECLARE @i int 
    DECLARE @length int 
    DECLARE @hexstring char(16) 
    SELECT @charvalue = '0x' 
    SELECT @i = 1 
    SELECT @length = DATALENGTH (@binvalue) 
    SELECT @hexstring = '0123456789ABCDEF' 
    WHILE (@i <= @length) 
    BEGIN 
    DECLARE @tempint int 
    DECLARE @firstint int 
    DECLARE @secondint int 
    SELECT @tempint = CONVERT(int, SUBSTRING(@binvalue,@i,1)) 
    SELECT @firstint = FLOOR(@tempint/16) 
    SELECT @secondint = @tempint - (@firstint*16) 
    SELECT @charvalue = @charvalue + 
    SUBSTRING(@hexstring, @firstint+1, 1) + 
    SUBSTRING(@hexstring, @secondint+1, 1) 
    SELECT @i = @i + 1 
    END 
    SELECT @hexvalue = @charvalue 
    GO 
    
    IF OBJECT_ID ('sp_help_revlogin_2000_to_2005') IS NOT NULL 
    DROP PROCEDURE sp_help_revlogin_2000_to_2005 
    GO 
    CREATE PROCEDURE sp_help_revlogin_2000_to_2005 
    
    @login_name sysname = NULL, 
    @include_db bit = 0, 
    @include_role bit = 0 
    
    AS 
    DECLARE @name sysname 
    DECLARE @xstatus int 
    DECLARE @binpwd varbinary (256) 
    DECLARE @dfltdb varchar (256) 
    DECLARE @txtpwd sysname 
    DECLARE @tmpstr varchar (256) 
    DECLARE @SID_varbinary varbinary(85) 
    DECLARE @SID_string varchar(256) 
    
    IF (@login_name IS NULL) 
    DECLARE login_curs CURSOR STATIC FOR 
    SELECT sid, [name], xstatus, password, isnull(db_name(dbid), 'master') 
    FROM master.dbo.sysxlogins 
    WHERE srvid IS NULL AND 
    [name] <> 'sa' 
    ELSE 
    DECLARE login_curs CURSOR FOR 
    SELECT sid, [name], xstatus, password, isnull(db_name(dbid), 'master') 
    FROM master.dbo.sysxlogins 
    WHERE srvid IS NULL AND 
    [name] = @login_name 
    
    OPEN login_curs 
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    
    IF (@@fetch_status = -1) 
    BEGIN 
    PRINT 'No login(s) found.' 
    CLOSE login_curs 
    DEALLOCATE login_curs 
    RETURN -1 
    END 
    
    SET @tmpstr = '/* sp_help_revlogin script ' 
    PRINT @tmpstr 
    SET @tmpstr = '** Generated ' 
    + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */' 
    PRINT @tmpstr 
    PRINT '' 
    PRINT '' 
    PRINT '' 
    PRINT '/***** CREATE LOGINS *****/' 
    
    WHILE @@fetch_status = 0 
    BEGIN 
    PRINT '' 
    SET @tmpstr = '-- Login: ' + @name 
    PRINT @tmpstr 
    
    IF (@xstatus & 4) = 4 
    BEGIN -- NT authenticated account/group 
    IF (@xstatus & 1) = 1 
    BEGIN -- NT login is denied access 
    SET @tmpstr = '' --'EXEC master..sp_denylogin ''' + @name + '''' 
    PRINT @tmpstr 
    END 
    ELSE 
    BEGIN -- NT login has access 
    SET @tmpstr = 'IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE [name] = ''' + @name + ''')' 
    PRINT @tmpstr 
    SET @tmpstr = CHAR(9) + 'CREATE LOGIN [' + @name + '] FROM WINDOWS' 
    PRINT @tmpstr 
    END 
    END 
    ELSE 
    BEGIN -- SQL Server authentication 
    EXEC sp_hexadecimal @SID_varbinary, @SID_string OUT 
    
    IF (@binpwd IS NOT NULL) 
    BEGIN -- Non-null password 
    EXEC sp_hexadecimal @binpwd, @txtpwd OUT 
    SET @tmpstr = 'CREATE LOGIN [' + @name + '] WITH PASSWORD=' + @txtpwd + ' HASHED' 
    END 
    ELSE 
    BEGIN -- Null password 
    SET @tmpstr = 'CREATE LOGIN [' + @name + '] WITH PASSWORD=''''' 
    END 
    
    SET @tmpstr = @tmpstr + ', CHECK_POLICY=OFF, SID=' + @SID_string 
    PRINT @tmpstr 
    END 
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    END 
    
    IF @include_db = 1 
    BEGIN 
    PRINT '' 
    PRINT '' 
    PRINT '' 
    PRINT '/***** SET DEFAULT DATABASES *****/' 
    
    FETCH FIRST FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    
    WHILE @@fetch_status = 0 
    BEGIN 
    PRINT '' 
    SET @tmpstr = '-- Login: ' + @name 
    PRINT @tmpstr 
    
    SET @tmpstr = 'ALTER LOGIN [' + @name + '] WITH DEFAULT_DATABASE=[' + @dfltdb + ']' 
    PRINT @tmpstr 
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    END 
    END 
    
    IF @include_role = 1 
    BEGIN 
    PRINT '' 
    PRINT '' 
    PRINT '' 
    PRINT '/***** SET SERVER ROLES *****/' 
    
    FETCH FIRST FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    
    WHILE @@fetch_status = 0 
    BEGIN 
    PRINT '' 
    SET @tmpstr = '-- Login: ' + @name 
    PRINT @tmpstr 
    
    IF @xstatus &16 = 16 -- sysadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''sysadmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &32 = 32 -- securityadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''securityadmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &64 = 64 -- serveradmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''serveradmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &128 = 128 -- setupadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''setupadmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &256 = 256 --processadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''processadmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &512 = 512 -- diskadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''diskadmin''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &1024 = 1024 -- dbcreator 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''dbcreator''' 
    PRINT @tmpstr 
    END 
    
    IF @xstatus &4096 = 4096 -- bulkadmin 
    BEGIN 
    SET @tmpstr = 'exec master.dbo.sp_addsrvrolemember @loginame=''' + @name + ''', @rolename=''bulkadmin''' 
    PRINT @tmpstr 
    END 
    
    FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwd, @dfltdb 
    END 
    END 
    
    CLOSE login_curs 
    DEALLOCATE login_curs 
    RETURN 0 
    GO
    
    exec sp_help_revlogin_2000_to_2005 @login_name=NULL, @include_db=1, @include_role=1
    GO
  2. לשמור את הפלט, ולאחר מכן הדבק ולהפעיל הפלט ב- SQL Server ניהול סטודיו ביעד SQL Server 2005.
הערה אם המקור SQL Server מכיל כניסה עם סיסמה ריקה, הפלט מכיל משפט הדומה להודעה הבאה.
CREATE LOGIN LoginName WITH PASSWORD = '', CHECK_POLICY = OFF, SID = MySID

הערות

  • סקור את קובץ ה-script של פלט בקפידה לפני שאתה מפעיל אותו thedestination שרת SQL. אם יש לך להעביר כניסות למופע של SQLServer בתחום אחר מאשר מקור המופע של SQL Server, לערוך thescript שנוצרו על-ידי השגרה sp_help_revlogin ולהחליף את שם התחום המחשבים החדשה במשפטיsp_grantlogin . מאחר כניסות משולב להעניק גישה בתחום החדש לא יקבלו את ה-SID אותו כ כניסות בתחום המקורי, מיותמים משתמשים שמכריע מתוך כניסות אלה. כדי לפתור את orphanedusers אלה, עיין במאמרים שאוזכרו פריט התבליט הבא. אם youtransfer משולב כניסות בין מופעים של שרתי SQL באותו תחום, משמש את ה-SID אותו ואת המשתמש שלא סביר להיות מיותמים.
  • לאחר שתעביר את כניסות, שייתכן שלמשתמשים אין permissionsto מסדי נתונים של access גם שמיקומם השתנה. בעיה זו נקראת "יתומים משתמש". אם תנסה להעניק את גישת כניסה למסד הנתונים, הוא mayfail המציין את המשתמש כבר קיים:
    MicrosoftSQL-DMO (ODBC SQLState: 42000) שגיאה 15023: משתמש או תפקיד '%s' כבר קיים במסד הנתונים הנוכחי.
    לקבלת הוראות כיצד למפות את כניסות משתמשים במסד נתונים לפתור יתומים התחברויות לשרת SQL וכניסות משולב, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
    240872 כיצד לפתור בעיות הרשאה בעת העברת מסד נתונים בין שרתים בהם פועל SQL Server
    לקבלת הוראות אודות השימוש sp_change_users_login פרוצדורה מאוחסנת של כדי לתקן את המשתמשים יתומים בזה אחר זה (thiswill רק כתובת משתמשים מיותמים מתוך כניסות SQL רגיל), ראה את followingarticle מתוך מאגר הידע Microsoft Knowledge Base:
    274188 "פתרון בעיות של משתמשים Orphaned" בנושא ספרים מקוונים הושלמה
  • אם ההעברה של כניסות וסיסמאות הוא חלק מסדי נתונים של moveof חדש בשרת שבו פועל SQL Server, עיין במאמר הבא ב- Microsoft Knowledge Base לקבלת תיאור של זרימת עבודה ו- stepsinvolved:
    314546 כיצד להעביר מסדי נתונים בין מחשבים שבהם פועל שרת SQL
  • באפשרותך לעשות זאת עקב הפרמטר @encryptopt בהליך מערכת המאוחסנים sp_addlogin , המאפשר כניסה ייווצרו byusing סיסמה מוצפנת. לקבלת מידע נוסף אודות הליך זה, seethe "sp_addlogin (T-SQL)" בנושא ספרים מקוונים של שרת SQL.
  • כברירת מחדל, רק חברים rolecan שרת של sysadminfixed לבחור מתוך טבלת sysxlogins . אלא אם כן חבר בקבוצת תפקיד sysadmin על מעניק את necessarypermissions, משתמשי קצה אין אפשרות ליצור או להפעיל אלה שגרות מאוחסנות.
  • גישה זו אינו מנסה להעביר את databaseinformation ברירת המחדל עבור כניסה מסוים מכיוון מסד הנתונים המוגדר כברירת מחדל עלול לא alwaysexist בשרת היעד. כדי להגדיר את מסד הנתונים המוגדר כברירת מחדל עבור כניסה, באפשרותך להשתמש בהליך מערכת המאוחסנים sp_defaultdb על-ידי העברתן כניסה thedefault ושם מסד הנתונים כארגומנטים. לקבלת מידע נוסף אודות שימוש בהליך זה, עיין בנושא "sp_defaultdb" בספרים מקוונים של שרת SQL.
  • במהלך העברה של כניסות בין מופעים של SQLServer, אם סדר המיון של שרת המקור אינה תלוית רישיות sortorder של שרת היעד הוא תלוי רישיות, עליך להזין תווים allalphabetical בסיסמאות כאותיות גדולות לאחר כניסות transferof לשרת היעד. אם סדר המיון של iscase-רגיש של שרת המקור ואת סדר המיון של שרת היעד שאינה תלויית-iscase, לא ניתן יהיה להיכנס transferredusing כניסות ההליך המתואר במאמר זה, אלא אם כן passwordcontains המקורי ללא תווים אלפביתיים או אלא אם כל תו אלפביתי את הסיסמה המקורית הם תווי אותיות רישיות. אם שני שרתי הרגישים arecase או שני שרתי הם תלויי רישיות, תהיה בעיה experiencethis לא. זהו אפקט בצד הדרך זה handlespasswords של שרת SQL. לקבלת מידע נוסף, עיין בנושא "אפקט על סיסמאות של שינוי SortOrders" ב- SQL Server 7.0 ספרים מקוונים.
  • בעת הפעלת הפלט מתוך קובץ ה-script sp_help_revlogin בשרת היעד, אם שרת היעד כבר יש definedwith כניסה שם זהה כאחד כניסות על הפלט script, ייתכן שתראה שגיאה thefollowing בעת ביצוע של הפלט של קובץ ה-script של sp_help_revlogin :
    שרת: Msg 15025, רמת 16, מצב 1, sp_addlogin הליך, קו 56
    כניסה 'test1' כבר קיים.
    באופן דומה, אם קיימת כניסה שונות עם אותו ערך SID על שרת זה בעת אחד מנסה להוסיף, receivethe לאחר הודעת השגיאה:
    שרת: Msg15433, רמה 16, מצב 1, sp_addlogin הליך, קו 93
    Suppliedparameter @sid נמצא בשימוש.
    לכן, עליך carefullyreview הפלט של פקודות אלה, לבחון את התוכן של הטבלה sysxlogins וכתובת שגיאות אלה בהתאם.
  • ערך SID עבור כניסה מסוים נמצא בשימוש בשם basisfor המיישמת גישה ברמת מסד נתונים ב- SQL Server. לכן, אם samelogin שני ערכים שונים עבור ה-SID ברמת מסד הנתונים (במסדי הנתונים twodifferent בשרת זה), הכניסה בלבד תהיה גישה thatdatabase שאת SID תואם לערך ב- syslogins עבור כניסה זו. מצב כזה עלול לגרום שאלה databasesin שני ומספרם צומצם מתוך שני שרתים שונים. כדי לפתור את thisproblem, כניסה הנדון יצטרך להסיר באופן ידני מתוך שמכריע יש אי-התאמה SID באמצעות הפרוצדורה המאוחסנת sp_dropuser ולאחר מכן להוסיף שוב באמצעות הפרוצדורה המאוחסנת sp_adduser .

מאפיינים

Article ID: 246133 - Last Review: יום רביעי 20 אוגוסט 2014 - Revision: 2.0
המידע במאמר זה חל על:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
מילות מפתח 
kbsqlsetup kbhowtomaster kbinfo kbmt KB246133 KbMthe
תרגום מכונה
חשוב: מאמר זה תורגם באמצעות תוכנת תרגום מכונה של Microsoft וייתכן שנערך לאחר מכן על-ידי קהילת Microsoftבאמצעות טכנולוגייתCommunity Translation Framework (CTF) או באמצעות תרגום אנושי. Microsoft מציעה לך גם מאמרים בתרגום אנושי, מאמרים בתרגום מכונה ומאמרים שנערכו על ידי הקהילה כדי לאפשר גישה למאמרים הקיימים במאגר הידע (Knowledge Base) שלMicrosoft בשפות שונות. מאמרים מתורגמים יכולים להכיל שגיאות באוצר המילים, בתחביר או בדקדוק. Microsoft אינה אחראית לחוסר דיוק, שגיאות או נזקים שייגרמו כתוצאה מטעויות בתכנים או משימוש בתכנים על ידי לקוחותיה.
כותרת מאמר זה באנגלית: 246133

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com