Kaip perkelti vartotojo vard? ir slapta?od?i? tarp SQL serverio egzempliorius

Straipsni? vertimai Straipsni? vertimai
Straipsnio ID: 246133 - Per?i?r?ti ?iame straipsnyje minimus produktus.
I?pl?sti visus | Sutraukti visus

?iame puslapyje

Santrauka

Po to, kai perkeliate duomen? baz?s ? nauj? server?, vartotojams gali b?ti galimyb? prisijungti prie naujo serverio. Vietoj to, jie gauti klaidos prane?imas:
MSG 18456, 16, 1 valstyb?s lygio
Prisijungti nepavyko, vartotojas '% ls'.
Jums turi b?ti perduoti prisijungim? ir slapta?od?ius ? nauj? server?. ?iame straipsnyje apra?oma, kaip galima perkelti prisijungimus ir slapta?od?ius ? nauj? server?.

Kaip tarp serveriai, kuriuose veikia SQL Server 7.0 perduoti vartotojo vard? ir slapta?od?i?

SQL serverio 7.0 duomen? transformavimo paslaugas (DTS) objekto Perdavimo funkcija perduoda prisijungim? ir vartotoj? tarp dviej? serveri?, ta?iau ji neperduoda slapta?od?ius u? SQL serverio patvirtintas prisijungimus. Perkelti prisijungim? ir slapta?od?ius i? serverio, kuriame veikia SQL Server 7.0 ? kit? serverio, kuriame veikia SQL Server 7.0, vykdykite skyriuje "Kaip galutinis sprendimas ? perdavimo vard? ir slapta?od?i? tarp skirting? versij? SQL Server".

Kaip perkelti prisijungim? ir slapta?od?ius i? SQL Serverio 7.0 SQL Server 2000 arba tarp serveriai, kuriuose veikia SQL Server 2000

Perduoti prisijungim? ir slapta?od?ius i? serverio SQL Server 7.0 pavyzd?iui, SQL Server 2000, arba tarp dviej? atvej? SQL Server 2000, naujas DTS paketo perk?limo prisijungimus u?duot? galite naudoti SQL Server 2000. Nor?dami tai padaryti, atlikite ?iuos veiksmus:
  1. Prisijungti prie SQL Server 2000 paskirties serverio, perkelti ? duomen? transformavimo paslaug? SQL Server Enterprise Manager, i?skleiskite aplank?, de?iniuoju pel?s mygtuku spustel?kite Vietos paketus, o tada spustel?kite Naujas paketas.
  2. DTS pakuot?s dizaineris atidaro, spustel?kite Perkelti prisijungimus u?duotisu?duo?i? meniu. I?samios informacijos apie ?altin?, paskirties ir prisijungimus skirtuk? atitinkamai.

    Svarbus SQL Server 2000 paskirties serverio negali veikti 64 bit? versija SQL Server 2000. DTS komponent? SQL Server 2000 64 bit? versijos n?ra. Jei importuojate prisijungim? i? pavyzd?iui SQL serveris, tai atskiro kompiuterio, bus savo SQL serverio egzempliori? turi veikti pagal domeno abonement? u?duot?.

    Pastaba DTS metodas bus perkelti slapta?od?ius, bet ne ? originalus SID. Jei prisijungimo vard? ne sukurtas naudojant original? SID ir viskas duomen? bazi? taip pat perkeliami ? nauj? server?, duomen? baz?s vartotojams bus na?lai?iai i? prisijungimo. Perkelti originalus SID ir apeiti ir na?lai?iai vartotojai, vykdykite skyriuje "Kaip galutinis sprendimas ? perdavimo vard? ir slapta?od?i? tarp skirting? versij? SQL Server".

Kaip perkelti vartotojo vard? ir slapta?od?i? tarp atvej? SQL Server 2005

Daugiau informacijos apie tai, kaip perkelti vartotojo vard? ir slapta?od?i? tarp atvej? SQL Server 2005, spustel?kite toliau straipsnio numer? ir per?i?r?kite straipsn? Microsoft ?ini? baz?je:
918992Kaip perkelti prisijungim? ir slapta?od?ius tarp atvej? SQL Server 2005

Kaip galutinis sprendimas perduoti vartotojo vard? ir slapta?od?i? tarp skirting? versij? SQL serverio

Nor?dami tai padaryti, naudokite vien? i? ?i? metod?.
Pastabos
  • Scenarijus, ?iuos metodus sukurti du saugomas proced?ras, kad yra pavadinti sp_hexadecimal saugomi tvark? ir savo pagrindin?s duomen? baz?s sp_help_revlogin saugomi proced?ra.
  • Scenarijus yra priklausomi nuo SQL serverio sistemos lenteli?. ?i? lenteli? strukt?r? gali pakeisti tarp versijos SQL serverio. Pasirinkus tiesiai i? sistemos lenteli? yra neskatinami.
  • Per?i?r?ti pastabos ?io straipsnio pabaigoje svarbu informacija apie veiksmus, apra?ytus metodus.
  • 2 B?das prisijungimus priskiria vaidmenis.

1 Metodas

?is metodas taikomas ?iais atvejais:
  • Perkeliate prisijungim? ir slapta?od?ius i? SQL Server 7.0 ? SQL Server 7.0.
  • Perkeliate prisijungim? ir slapta?od?ius i? SQL Server 7.0 ? SQL Server 2000.
  • J?s perduoti vartotojo vard? ir slapta?od?i? tarp serveriai, kuriuose veikia SQL Server 2000.
Tarp skirting? versij? SQL serverio perduoti vartotojo vard? ir slapta?od?i?, atlikite ?iuos veiksmus:
  1. Paleisti ?? scenarij? ?altinio SQL serverio. Pereikite prie 2 veiksmo Baig? kurti ir sp_help_revlogin saugoma proced?ra.
    ----- 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. Suk?r? sp_help_revlogin saugomi proced?r?, paleisti sp_help_revlogin tvarka nuo Query Analyzer ?altinio serveris. Sp_help_revlogin saugomi proced?ra gali b?ti taikoma SQL Server 7.0 ir SQL Server 2000. Sp_help_revlogin saugomi tvarka produkcija yra prisijungimo scenarijus, kad sukurti prisijungimai su ? originalus SID ir slapta?od?. I?saugoti produkcija, ir tada ?klijuokite ir paleisti j? ? u?klaus? Analizatorius paskirties SQL serverio. Pvz.:
    EXEC master..sp_help_revlogin
    

2 B?das

?is metodas taikomas ?iais atvejais:
  • Perkeliate prisijungim? ir slapta?od?ius i? SQL Server 7.0 ? SQL Server 2005.
  • Perkeliate prisijungim? ir slapta?od?ius i? SQL Server 2000 ? SQL Server 2005.
  • Galite priskirti prisijungimus vaidmenis.
Nor?dami perkelti vartotojo vard? ir slapta?od?i? tarp skirting? versij? SQL serverio ir tada priskirti vaidmenys prisijungimus, atlikite ?iuos veiksmus:
  1. Paleisti ?? scenarij? ?altinio SQL serverio.
    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. I?saugoti produkcija, ir tada ?terpti ir paleisti produkcija SQL Server Management Studio paskirties SQL Server 2005.
Pastaba Jei ?altinio SQL serverio yra tu??i? slapta?od?, prisijungimo vard?, produkcija yra parei?kimas, kad pana?? ? ??.
CREATE LOGIN LoginName WITH PASSWORD = '', CHECK_POLICY = OFF, SID = MySID

Pastabos

  • Atid?iai per?i?r?kite produkcijos scenarij? prie? jums paleisti j? ? paskirties SQL serverio. Jei turite perduoti SQL egzemplioriaus prisijungimai Serverio kitame domene, nei ?altinio pavyzd?iui, SQL Server, redaguoti, scenarij? sukurtas sp_help_revlogin tvarka, ir pakeisti domeno vardas nauj? domen? ? sp_grantlogin parei?kimus. Nes integruotos prisijungimus suteikta prieiga, naujas domenas neturi pa?ios SID kaip prisijungim? pirminio domeno, kad duomen? baz?s vartotojai bus na?lai?iai i? ?i? prisijungimus. Spr?sti ?ie na?lai?iai vartotojai, ie?kokite straipsniuose nurodytos ?i? s?ra?o su ?enkleliais punktas. Jei j?s perdavimo integruotos prisijungimus tarp atvej? SQL serveri? tame pa?iame domene, pa?ios SID naudojama ir vartotojas n?ra link? b?ti na?lai?iai.
  • Po to galite perkelti ? prisijungimus, vartotojai gali netur?ti teis?s prieiti prie duomen? bazi?, taip pat nebuvo perkelti. ?i problema yra apra?ytas kaip yra "na?lai?iai vartotojo". Jei bandote prisijungti prieig? prie duomen? baz?s, ji gali nepavyksta nurodant vartotojas jau yra:
    Microsoft SQL-DMO (ODBC SQLState: 42000) klaida 15023: vartotojui ar rolei '% s' jau yra dabartin?je duomen? baz?je.
    Nurodymus, kaip priskirti prisijungim? prie duomen? baz?s vartotojams spr?sti na?lai?iais SQL serverio prisijungimus ir integruot? prisijungimo duomenis, ?i?r?kite ?? straipsn? Microsoft ?ini? baz?je:
    240872 Kaip i?spr?sti leidimo klausimai kai perkeliate duomen? baz? tarp serveriai, kuriuose veikia SQL Server
    Nurodymus, kaip naudoti sp_change_users_login saugomi proced?r?, pavieniai vartotojai po vien? (tai tik pateiks vartotojams na?lai?iai i? standartini? SQL prisijungimai), ?r. toliau Microsoft ?ini? baz?s straipsn?:
    274188 "Trik?i? ?alinimo Orphaned vartotojams" sistemoje knygos Online neu?baigtas
  • Jei vartotojo vard? ir slapta?od?i? perdavimas yra dalis, perkelti duomen? baz?s ? nauj? server? paleisti "SQL Server", pamatyti ?? straipsn? Microsoft ?ini? baz?s darbo eigos ir priemoni? apra?ymas dalyvauja:
    314546 Kaip perjungin?ti kompiuteriams, kuriuose veikia SQL serverio duomen? baz?s
  • Tai galite padaryti d?l @encryptopt parametro sp_addlogin sistema saugomi proced?r?, kuri leid?ia sukurti prisijungim? naudojant u??ifruotos slapta?od?. Daugiau informacijos apie ?i? proced?r?, ?r. "sp_addlogin (T-SQL)" tema SQL Server Books Online.
  • Pagal numatytuosius nustatymus tik nariai sysadminfixed serverio vaidmuo galite pasirinkti i? sysxlogins lentel?s. Nebent sysadmin vaidmens narys suteikia b?tinas teises, galutiniai vartotojai negali sukurti arba paleisti ?ias saugomas proced?ras.
  • ?is metodas ne bando perkelti numatytuosius duomen? baz?s ypa? prisijungimo informacija nes numatytuosius duomen? baz?s ne visada gali egzistuoja paskirties serveryje. Nustatyti numatytuosius duomen? baz?s prisijungimams, galite naudoti sp_defaultdb sistemos saugomi tvarka perduoti j? prisijungimo vardas ir Numatytasis duomen? baz?s kaip argumentus. Daugiau informacijos apie naudojant ?i? proced?r?, Per?i?r?kite SQL Server Books Online "sp_defaultdb" tem?.
  • Per prisijungim? pers?dimo atvejais SQL Serverio, jei r??iavimo tvark?, ?altinio serveris yra utf8 ir r??iuoti paskirties serveris yra Did?iosios ir ma?osios raid?s, turite ?vesti vis? ab?c?l?s simboli? slapta?od?ius kaip simbolius did?iosiomis raid?mis po perk?limo prisijungim? prie paskirties serverio. Jei r??iavimo tvark?, ?altinio serveris yra Did?iosios ir ma?osios raid?s ir r??iavimo tvark?, ? paskirties server? yra utf8, n?ra gal?site prisijungti naudojant perkelti prisijungimai naudojant ?iame straipsnyje i?d?stytos proced?ros, i?skyrus atvejus, kai original? slapta?od? yra ne ab?c?l?s simboli? arba jeigu visos ab?c?l?s simboli? original? slapta?od? yra simbolius did?iosiomis raid?mis. Jei abu serveriai Did?iosios ir ma?osios raid?s arba abu serveriai yra utf8, jums nebus patirties, ?i? problem?. Tai yra taip, kad SQL serverio rankenos ?alutinis poveikis slapta?od?iai. Daugiau informacijos, ie?kokite "poveikis d?l slapta?od?i?, pakeisti r??iuoti U?sakym?"tema SQL Server 7.0 knygos Online.
  • Kai paleid?iate produkcija i? sp_help_revlogin scenarij? paskyrimo vietos serveryje, jei paskirties serverio jau turi apibr??ti prisijungimo vard? su tuo pa?iu pavadinimu kaip vien? i? prisijungimo scenarijaus produkcija, galite matyti, ?i klaida po vykdymo produkcijos sp_help_revlogin scenarij?:
    Serveris: Msg 15025, Lygio 16, 1 valstyb?s, tvarkos sp_addlogin, Line 56
    Prisijungimo "test1" jau yra.
    Be to, jeigu skirting? prisijungti su tas pats SID vert? ?iame serveryje kaip tas, kur? m?ginote ?traukti, galite gauti ?? klaidos prane?im?:
    Serveris: Msg 15433, Dydis 16, 1 valstyb?s, tvarkos sp_addlogin, linija 93
    Pateikta parametras @sid naudojamas.
    Tod?l turite atid?iai Per?i?r?ti ?i? komand? i?vestis, jo turinio sysxlogins lentel?s, ir spr?sti ?ios klaidos atitinkamai.
  • SID vert? ypa? prisijungimui naudojamas kaip pagrindas ?gyvendinimo lygio prieig? prie duomen? baz?s ? SQL server?. Tod?l, jei tas pats prisijungimo turi dvi skirtingas reik?mes SID lygio duomen? baz?s (? dvi skirting? duomen? bazi? serveryje), prisijungimas tik gal?s naudotis, duomen? baz?, kurios SID atitinka syslogins kad prisijungimui vert?. Tokia situacija gali atsirasti, jei du duomen? ? klausim? buvo sutvirtintas i? dviej? skirting? serveri?. Nor?dami i?spr?sti ?i? problem? problema, ? prisijungti tur?s b?ti rankiniu b?du pa?alinti i? to duomen? baz?s, kuri yra SID nesutapimas naudojant sp_dropuser saugoma proced?ra, ir tada dar kart? prid?jo sp_adduser saugomi tvarka.

Savyb?s

Straipsnio ID: 246133 - Paskutin? per?i?ra: 2013 m. bir?elio 20 d. - Per?i?ra: 1.0
Taikoma:
  • 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 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
Rakta?od?iai: 
kbsqlsetup kbhowtomaster kbinfo kbmt KB246133 KbMtlt
Atliktas automatinis vertimas
SVARBU: ?is straipsnis i?verstas naudojant ?Microsoft? ma?ininio vertimo programin? ?rang? ir gali b?ti pataisytas naudojant ?Community Translation Framework? (CTF) technologij?. ?Microsoft? si?lo ma?inos i?verstus ir po to bendruomen?s suredaguotus straipsnius, taip pat ?mogaus i?verstus straipsnius siekdama suteikti prieig? prie vis? savo ?ini? baz?s straipsni? daugeliu kalb?. Ma?inos i?verstuose ir v?liau paredaguotuose straipsniuose gali b?ti ?odyno, sintaks?s ir / arba gramatikos klaid?. ?Microsoft? neatsako u? jokius netikslumus, klaidas arba ?al?, patirt? d?l neteisingo turinio vertimo arba m?s? klient? naudojimosi juo. Daugiau apie CTF ?r. http://support.microsoft.com/gp/machine-translation-corrections.
Spustel?kite ?ia, nor?dami pamatyti ?io straipsnio versij? angl? kalba: 246133

Pateikti atsiliepim?

 

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