Přenášení přihlašovacích jmen a hesel mezi instancemi serveru SQL Server (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Překlady článku Překlady článku
ID článku: 246133 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Po přesunutí databází na nový server nemusí být uživatelé moci přihlásit k serveru nový. Zobrazí se následující chybová zpráva:
Msg 18456, úroveň 16 stav 1
Přihlášení se nezdařilo pro uživatele % ls.
Přihlášení a hesla musíte přenést na nový server. Tento článek popisuje, jak přenést přihlášení a hesla, nový server.

Způsob přenosu mezi servery se systémem SQL Server 7.0 přihlášení a hesla

Převede funkce Transfer objekt SQL Server 7.0 Data Transformation Services (DTS) mezi dvěma servery přihlášení a uživatelé, ale není přenos hesel pro přihlášení na SQL Server ověřen. Přenést přihlášení a hesla ze serveru se systémem SQL Server 7.0 na jiný server se systémem SQL Server 7.0, postupujte podle kroků v části "dokončení rozlišení přenosu přihlášení a hesla mezi různé verze serveru SQL".

Jak přenést přihlášení a hesla z SQL Server 7.0, SQL Server 2000 nebo mezi servery se systémem SQL Server 2000

K přenosu přihlášení a hesla ze serveru SQL Server 7.0 instance SQL Server 2000 nebo mezi dvě instance SQL Server 2000, můžete použít nový úkol přihlášení DTS balíček Transfer SQL Server 2000. Postupujte takto:
  1. Připojit k serveru SQL Server 2000 cílové přesunout Data Transformation Services v programu SQL Server Enterprise Manager, rozbalte složku, klepněte pravým tlačítkem myši na Místní balíčků a klepněte na příkaz Nový balíček.
  2. Po DTS balíček návrháře otevře, klepněte na tlačítko Transfer úkol přihlášení v nabídce Úloha. Informace o kartách zdroj, cíl a přihlášení jako odpovídající dokončit.

    Důležité: Cílového serveru SQL Server 2000 nemůže být spuštěn 64bitové verze SQL Server 2000. Součásti DTS 64bitové verze SQL Server 2000 jsou k dispozici. Pokud importujete přihlášení z instance služby SQL Server, který je v samostatném počítači instance serveru SQL bude musí být spuštěn pod účtem domény k dokončení úkolu.

    Poznámka: Metoda DTS bude přenos hesel, ale není původní SID. Není k dispozici jejich synchronní Pokud přihlašovací jméno není vytvořen pomocí původní SID a uživatelských databází také přeneseny do nového serveru, uživatelé databáze bude být kopie z přihlášení. Přenosu původní SID a osamocené uživatelům obejít, postupujte podle kroků v části "dokončení rozlišení přenosu přihlášení a hesla mezi různé verze serveru SQL".

Jak přenést přihlášení a hesel mezi instancemi serveru SQL Server 2005

Další informace o přenosu přihlášení a hesel mezi instancemi serveru SQL Server 2005 klepněte na následující číslo článku databáze Microsoft Knowledge Base:
918992Jak přenést přihlášení a hesel mezi instancemi serveru SQL Server 2005

Dokončení rozlišení přenosu přihlášení a hesla mezi různé verze serveru SQL

Použijte některou z následujících metod.
Poznámky
  • Skripty v následujících metod vytvořit dvě uložené procedury s názvem sp_hexadecimal uložené procedury a sp_help_revlogin uložené procedury v hlavní databáze.
  • Skripty jsou závislé na systému tabulky serveru SQL. Mezi verze serveru SQL může změnit strukturu těchto tabulek. Zahájení výběrem ze systémových tabulek.
  • Prohlédněte si poznámky na konci tohoto článku pro důležité informace o krocích metody.
  • Metoda 2 přiřadí přihlášení rolí.

Metoda 1

Tato metoda se týká následujících scénářů:
  • Přenosu přihlášení a hesla z SQL Server 7.0 na SQL Server 7.0.
  • Přenosu přihlášení a hesla z SQL Server 7.0 k serveru SQL Server 2000.
  • Přihlášení a hesla přenos mezi servery se systémem SQL Server 2000.
Přenést přihlášení a hesla mezi různé verze serveru SQL, postupujte takto:
  1. Na zdrojovém serveru SQL spusťte následující skript. Po dokončení vytvoření sp_help_revlogin uložené procedury, pokračujte krokem 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. Po vytvoření sp_help_revlogin uložené procedury spustit proceduru sp_help_revlogin z Query Analyzer na zdrojovém serveru. Sp_help_revlogin uložené procedury lze na SQL Server 7.0 a SQL Server 2000. Výstup sp_help_revlogin uložené procedury je přihlašovacích skriptů vytváření přihlášení s původní SID a heslo. Uložit výstup a potom vložit a spustit v aplikaci Query Analyzer na cílovém serveru SQL. Například:
    EXEC master..sp_help_revlogin
    

Metoda 2

Tato metoda se týká následujících scénářů:
  • Přenosu přihlášení a hesla z SQL Server 7.0 k serveru SQL Server 2005.
  • Můžete přenést přihlášení a hesla ze serveru SQL Server 2000 SQL Server 2005.
  • Přihlášení přiřadit role.
Přenos přihlášení a hesla mezi různé verze serveru SQL a k rolím přiřadit přihlášení, postupujte takto:
  1. Na zdrojovém serveru SQL spusťte následující skript.
    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. Uložit výstup a potom vložit a spustit výstup v SQL Server Management Studio na cílovém serveru SQL Server 2005.
Poznámka: Pokud zdroj SQL Server obsahuje přihlášení má prázdné heslo, obsahuje výstup příkazu podobná následující.
CREATE LOGIN LoginName WITH PASSWORD = '', CHECK_POLICY = OFF, SID = MySID

Poznámky

  • Pečlivě zkontrolujte výstupu skriptu před spuštěním na cílovém serveru SQL. Pokud máte přenosu přihlášení instance služby SQL Server v jiné doméně než zdroj instance serveru SQL, upravit skript generovaných postup sp_help_revlogin a nahradit název domény nové domény v příkazech sp_grantlogin. Není k dispozici jejich synchronní protože integrované přihlášení udělen přístup v nové doméně nebudou mít stejný SID jako přihlášení v původní doméně, uživatelů databáze bude být kopie z těchto přihlášení. Chcete-li vyřešit tyto osamocené uživatele, naleznete v článcích odkazuje na následující položku odrážku. Integrované přihlášení přenést mezi instance SQL serverů ve stejné doméně, je použit stejný SID a uživatel není pravděpodobně není k dispozici jejich synchronní být kopie.
  • Po přesunutí přihlášení uživatelé pravděpodobně nemáte oprávnění pro přístup k databázím také přesunuta. Tento problém je popsán jako "osamocené uživatel". Pokud se pokusíte udělit přístup pro přihlášení k databázi může selhat označující uživatel již existuje:
    Microsoft SQL-DMO (SQLState ODBC: 42000) Chyba 15023: uživatel nebo role '% s' již existuje v aktuální databázi.
    Pokyny o mapování přihlášení uživatelů databáze řešení osamocené přihlášení serveru SQL a integrované přihlášení naleznete v následujícím článku databáze Microsoft Knowledge Base:
    240872Jak vyřešit problémy oprávnění při přesunutí databáze mezi servery se systémem SQL Server
    Pokyny o používání sp_change_users_login uložené procedury k opravě osamocené uživatelé-postupně (to bude pouze adresa uživatelé není k dispozici jejich synchronní kopie ze standardní přihlášení SQL), naleznete v následujícím článku databáze Microsoft Knowledge Base:
    274188Téma o řešení potíží s opuštěnými uživateli v dokumentaci Books Online je neúplné (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)
  • Pokud přenos přihlášení a hesla je součástí přesunutí databází na nový server se systémem SQL Server, naleznete v následujícím článku v databáze Microsoft Knowledge Base pro popis pracovního postupu a kroky:
    314546Jak přesunout databáze mezi počítači se systémem SQL Server
  • To lze provést z důvodu @ encryptopt parametr systému sp_addlogin uložené procedury, která umožňuje přihlášení k vytvořené pomocí šifrované heslo. Další informace o tomto postupu naleznete v tématu "sp_addlogin (T-SQL)" v SQL Server Books Online.
  • Ve výchozím nastavení můžete vybrat pouze členové role serveru sysadminfixed z tabulky sysxlogins. Pokud člen sysadmin role uděluje potřebná oprávnění, nelze vytvořit nebo spustit tyto uložené procedury koncovým uživatelům.
  • Tento přístup zkuste přenosu informací výchozí databázi pro konkrétní přihlášení, protože výchozí databázi nemusí vždy existovat na cílovém serveru. Chcete-li definovat výchozí databázi přihlašovacího jména, použít systémovou uloženou proceduru sp_defaultdb jej jako argumenty předáním přihlašovací jméno a výchozí databázi. Další informace o použití tohoto postupu naleznete v tématu "sp_defaultdb" SQL Server Books Online.
  • Během přenosu přihlášení mezi instancemi serveru SQL Pokud pořadí řazení zdrojový server nerozlišuje velká a rozlišuje pořadí řazení cílového serveru musíte zadat všechny abecední znaky v heslech jako velká písmena po převodu přihlášení na cílovém serveru. Jestliže pořadí řazení zdrojový server rozlišuje velká a nerozlišuje pořadí řazení cílového serveru, nebude možné přihlásit pomocí přihlášení přeneseny pomocí postup popsaný v tomto článku, pokud původní heslo obsahuje žádné abecední znaky nebo pokud jsou všechny abecední znaky původní heslo velká písmena. Pokud oba servery jsou rozlišována velká a malá písmena nebo oba servery jsou velká a malá písmena, tento problém není dojít. Toto je strana účinek způsobu, jakým SQL Server zpracovává hesla. Další informace naleznete v tématu "Efekt na hesla z Změna seřadit objednávky" SQL Server 7.0 Books Online.
  • Při spuštění výstup ze skriptu sp_help_revlogin na cílovém serveru Pokud cílový server již má přihlášení definován stejný název jako přihlášení na výstupu skriptu, může se zobrazit následující chyba při provádění výstupu skriptu sp_help_revlogin:
    Serveru: Zpráva 15025 Level 16 1 Stav procedur sp_addlogin řádek 56
    Přihlášení test1 již existuje.
    Podobně pokud existuje jiný přihlášení se stejnou hodnotou SID na tomto serveru, který se pokoušíte přidat, zobrazí následující chybová zpráva:
    Zpráva serveru: 15433, 16 úroveň 1 Stav procedur sp_addlogin řádek 93
    Zadaný parametr @ sid je používán.
    Proto musíte pečlivě zkontrolujte výstupu těchto příkazů, zkontrolujte obsah tabulky sysxlogins a odpovídajícím způsobem adresa tyto chyby.
  • Hodnota SID pro konkrétní přihlašovací slouží jako základ pro implementaci úroveň přístupu k databázi SQL Server. Proto pokud stejné přihlášení má dvě různé hodnoty pro SID na úrovni databáze (ve dvou různých databázích na tomto serveru), přihlašovací jméno bude mít přístup pouze na jehož SID odpovídá hodnotě v syslogins pro přihlášení k dané databázi. Takové situaci může dojít, pokud v těchto dvou databází mít byla konsolidována z dvou různých serverů. Tento problém by musel přihlášení dotyčný být ručně odebrán z databáze, který má SID Neshoda pomocí sp_dropuser uložené procedury a potom znovu přidán pomocí sp_adduser uložené procedury.

Vlastnosti

ID článku: 246133 - Poslední aktualizace: 2. listopadu 2007 - Revize: 8.3
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbmt kbhowtomaster kbinfo KB246133 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:246133

Dejte nám zpětnou vazbu

 

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