Al momento sei offline in attesa che la connessione Internet venga ristabilita

Trasferimento di accessi e password tra istanze di SQL Server

Sommario
Dopo lo spostamento di database in un nuovo server, è possibile che gli utenti non siano in grado di accedere al nuovo server e che visualizzino un messaggio di errore analogo al seguente:
Messaggio 18456, livello 16, stato 1
Accesso non riuscito per l'utente '%ls'.
È necessario trasferire gli account di accesso e le password nel nuovo server. In questo articolo viene descritto come eseguire questa operazione.

Trasferimento di account di accesso e password tra server in cui è in esecuzione SQL Server 7.0

La funzionalità di trasferimento degli oggetti Data Transformation Services (DTS) di SQL Server 7.0 consente di trasferire account di accesso e utenti tra due server, ma non le password per gli account di accesso autenticati di SQL Server. Per trasferire account di accesso e password da un server in cui è in esecuzione SQL Server 7.0 in un altro server in cui è in esecuzione SQL Server 7.0, attenersi alla procedura descritta nella sezione "Soluzione completa per il trasferimento di account di accesso e password tra versioni diverse di SQL Server".

Trasferimento di account di accesso e password da SQL Server 7.0 a SQL Server 2000 o tra server in cui è in esecuzione SQL Server 2000

Per trasferire account di accesso e password da un server in cui è in esecuzione SQL Server 7.0 a un'istanza di SQL Server 2000 o tra due istanze di SQL Server 2000, è possibile utilizzare la nuova attività Trasferisci account di accesso per i pacchetti DTS in SQL Server 2000. A questo scopo, attenersi alla seguente procedura:
  1. Eseguire la connessione al server di destinazione SQL Server 2000, spostarsi in Data Transformation Services in SQL Server Enterprise Manager, espandere la cartella, fare clic con il pulsante destro del mouse su Pacchetti locali e quindi scegliere Nuovo pacchetto.
  2. All'apertura di Progettazione pacchetti DTS scegliere Attività Trasferisci account di accesso dal menu Attività. Specificare le informazioni necessarie nelle schede Origine, Destinazione e Account di accesso.

    Importante Nel server SQL Server 2000 di destinazione non deve essere in esecuzione la versione a 64 bit di SQL Server 2000. I componenti DTS per la versione a 64 bit di SQL Server 2000 non sono disponibili. Se si importano account di accesso da un'istanza di SQL Server presente in un computer diverso, per completare l'attività l'istanza di SQL Server dovrà essere eseguita con un account di dominio.

    Nota Il metodo DTS consentirà di trasferire le password, ma non il SID originale. Se un account di accesso non viene creato utilizzando il SID originale e nel nuovo server vengono trasferiti anche i database utente, gli utenti dei database non saranno più associati ai relativi account di accesso. Per trasferire il SID originale e ignorare gli utenti isolati (orfani), attenersi alla procedura descritta nella sezione "Soluzione completa per il trasferimento di account di accesso e password tra versioni diverse di SQL Server".

Trasferimento di account di accesso e password tra istanze di SQL Server 2005

Per ulteriori informazioni su come trasferire account di accesso e password tra istanze di SQL Server 2005, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
918992 Trasferimento di account di accesso e password tra istanze di SQL Server 2005

Soluzione completa per il trasferimento di account di accesso e password tra versioni diverse di SQL Server

A questo scopo, utilizzare uno dei seguenti metodi.
Note
  • Con gli script riportati nei metodi seguenti vengono create due stored procedure denominate sp_hexadecimal e sp_help_revlogin nel database master.
  • Gli script dipendono dalle tabelle di sistema di SQL Server la cui struttura può variare tra le diverse versioni di SQL Server. È sconsigliabile eseguire istruzioni SELECT direttamente sulle tabelle di sistema.
  • Per informazioni importanti sui diversi passaggi dei metodi, vedere le note alla fine dell'articolo.
  • Con il metodo 2 vengono associati gli account di accesso ai ruoli.

Metodo 1

Questo metodo può essere applicato negli scenari seguenti:
  • Trasferimento di account di accesso e password da SQL Server 7.0 a SQL Server 7.0.
  • Trasferimento di account di accesso e password da SQL Server 7.0 a SQL Server 2000.
  • Trasferimento di account di accesso e password tra server in cui è in esecuzione SQL Server 2000.
Per trasferire account di accesso e password tra versioni diverse di SQL Server, attenersi alla seguente procedura:
  1. Eseguire lo script riportato di seguito nel server SQL di origine. Al termine della creazione della store procedure sp_help_revlogin proseguire al passaggio 2.
    ----- Begin Script, Create sp_help_revlogin procedure -----USE masterGOIF OBJECT_ID ('sp_hexadecimal') IS NOT NULL  DROP PROCEDURE sp_hexadecimalGOCREATE PROCEDURE sp_hexadecimal    @binvalue varbinary(256),    @hexvalue varchar(256) OUTPUTASDECLARE @charvalue varchar(256)DECLARE @i intDECLARE @length intDECLARE @hexstring char(16)SELECT @charvalue = '0x'SELECT @i = 1SELECT @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 + 1ENDSELECT @hexvalue = @charvalueGOIF OBJECT_ID ('sp_help_revlogin') IS NOT NULL  DROP PROCEDURE sp_help_revlogin GOCREATE PROCEDURE sp_help_revlogin @login_name sysname = NULL ASDECLARE @name    sysnameDECLARE @xstatus intDECLARE @binpwd  varbinary (256)DECLARE @txtpwd  sysnameDECLARE @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_nameOPEN login_curs FETCH NEXT FROM login_curs INTO @SID_varbinary, @name, @xstatus, @binpwdIF (@@fetch_status = -1)BEGIN  PRINT 'No login(s) found.'  CLOSE login_curs   DEALLOCATE login_curs   RETURN -1ENDSET @tmpstr = '/* sp_help_revlogin script ' PRINT @tmpstrSET @tmpstr = '** Generated '   + CONVERT (varchar, GETDATE()) + ' on ' + @@SERVERNAME + ' */'PRINT @tmpstrPRINT ''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  ENDCLOSE login_curs DEALLOCATE login_curs RETURN 0GO ----- End Script -----
  2. Dopo la creazione della stored procedure sp_help_revlogin, eseguire la routine sp_help_revlogin da Query Analyzer nel server di origine. La stored procedure sp_help_revlogin può essere utilizzata sia in SQL Server 7.0 che in SQL Server 2000. L'output della stored procedure sp_help_revlogin è rappresentato da script di accesso per la creazione di account di accesso con il SID originale e la relativa password. Salvare l'output e quindi incollarlo ed eseguirlo in Query Analyzer nel server SQL Server di destinazione, ad esempio:
    EXEC master..sp_help_revlogin

Metodo 2

Questo metodo può essere applicato negli scenari seguenti:
  • Trasferimento di account di accesso e password da SQL Server 7.0 a SQL Server 2005.
  • Trasferimento di account di accesso e password da SQL Server 2000 a SQL Server 2005.
  • Assegnazione di ruoli ad account di accesso.
Per trasferire account di accesso e password tra versioni diverse di SQL Server e quindi assegnare ruoli agli account di accesso, attenersi alla seguente procedura:
  1. Eseguire lo script riportato di seguito nel server SQL di origine.
    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 GOexec sp_help_revlogin_2000_to_2005 @login_name=NULL, @include_db=1, @include_role=1GO
  2. Salvare l'output e quindi incollarlo ed eseguirlo in SQL Server Management Studio nel server SQL 2005 di destinazione.
Nota Se il server SQL di origine contiene un account di accesso con password vuota, l'output conterrà un'istruzione analoga alla seguente:
CREATE LOGIN LoginName WITH PASSWORD = '', CHECK_POLICY = OFF, SID = MySID

Note

  • Controllare attentamente lo script di output prima di eseguirlo nel server SQL di destinazione. Per trasferire account di accesso in un'istanza di SQL Server in un dominio diverso da quello dell'istanza di origine di SQL Server, modificare lo script generato dalla routine sp_help_revlogin sostituendo il nome del dominio con il nuovo dominio nelle istruzioni sp_grantlogin. Dato che gli account di accesso integrati a cui si concede accesso nel nuovo dominio non saranno associati agli stessi SID degli account di accesso del dominio originale, gli utenti dei database non saranno più associati a tali account di accesso. Per risolvere gli utenti isolati (orfani), vedere gli articoli menzionati al punto successivo. Se si trasferiscono account di accesso integrati tra istanze di SQL Server nello stesso dominio, verrà utilizzato lo stesso SID e sarà quindi improbabile che l'utente rimanga isolato (orfano).
  • Dopo lo spostamento degli account utente, è possibile che gli utenti non dispongano più delle autorizzazioni per accedere ai database, anch'essi spostati. In questo caso si parla di "utente isolato (orfano)". Se si tenta di concedere l'accesso al database, potrebbe essere visualizzato un messaggio di errore che indica che l'utente esiste già:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Errore 15023: L'utente, il gruppo o il ruolo '%1!' esiste già nel database corrente.
    Per istruzioni su come eseguire il mapping degli account utente agli utenti del database per risolvere gli account di accesso di SQL Server isolati (orfani) e gli account di accesso integrati, vedere il seguente articolo della Microsoft Knowledge Base:
    240872 Risoluzione di problemi di autorizzazioni quando si sposta un database tra server in cui è in esecuzione SQL server
    Per istruzioni su come utilizzare la stored procedure sp_change_users_login per correggere singolarmente utenti isolati (orfani), vedere il seguente articolo della Microsoft Knowledge Base. Verranno considerati solo utenti isolati (orfani) con account di accesso SQL standard.
    274188 L'argomento della documentazione in linea relativo alla risoluzione degli utenti orfani (isolati) non è completo
  • Se il trasferimento di account di accesso e password viene eseguito all'interno di uno spostamento di database in un nuovo server in cui è in esecuzione SQL Server, vedere il seguente articolo della Microsoft Knowledge Base per una descrizione del flusso di lavoro e dei passaggi necessari:
    314546 Spostamento di database tra computer che eseguono SQL Server
  • L'operazione è consentita grazie al parametro @encryptopt della stored procedure di sistema sp_addlogin che consente la creazione di un account di accesso tramite password crittografata. Per ulteriori informazioni su questa routine, vedere l'argomento "sp_addlogin (T-SQL)" nella documentazione in linea di SQL Server.
  • Per impostazione predefinita, solo i membri del ruolo server sysadminfixed possono eseguire istruzioni SELECT sulla tabella sysxlogins. Se un membro del ruolo sysadmin non concede le autorizzazioni necessarie, gli utenti finali non potranno creare o eseguire queste stored procedure.
  • Con questo approccio non si tenta di trasferire le informazioni sul database predefinito per un determinato account di accesso, perché tale database potrebbe non essere presente nel server di destinazione. Per definire il database predefinito per un account di accesso, è possibile utilizzare la stored procedure di sistema sp_defaultdb passando come argomenti il nome dell'account di accesso e il database predefinito. Per ulteriori informazioni sull'utilizzo di questa routine, vedere l'argomento "sp_defaultdb" nella documentazione in linea di SQL Server.
  • Durante il trasferimento di account di accesso tra istanze di SQL Server, se per l'ordinamento del server di origine non viene fatta distinzione tra maiuscole e minuscole, mentre per l'ordinamento del server di destinazione viene fatta distinzione tra maiuscole e minuscole, successivamente al trasferimento degli account di accesso al server di destinazione sarà necessario immettere tutti i caratteri alfabetici delle password come caratteri maiuscoli. Se per l'ordinamento del server di origine viene fatta distinzione tra maiuscole e minuscole, mentre per l'ordinamento del server di destinazione non viene fatta distinzione tra maiuscole e minuscole, non sarà possibile eseguire l'accesso con gli account di accesso trasferiti mediante la procedura descritta in questo articolo se la password originale contiene caratteri alfabetici o se tutti i caratteri alfabetici della password originale non sono caratteri maiuscoli. Se le maiuscole e le minuscole vengono gestite in modo analogo nell'ordinamento del server di origine e di destinazione, questo problema non si verificherà. Si tratta di una conseguenza della modalità di gestione delle password di SQL Server. Per ulteriori informazioni, vedere l'argomento relativo all'effetto delle modifiche dell'ordinamento sulle password nella documentazione in linea di SQL Server 7.0.
  • Quando si esegue l'output dello script sp_help_revlogin nel server di destinazione, se nel server di destinazione è già stato definito un account di accesso con nome analogo a quello di uno degli account di accesso presenti nell'output dello script, potrebbe essere visualizzato l'errore seguente all'esecuzione dell'output dello script sp_help_revlogin:
    Server: messaggio 15025, livello 16, stato 1, procedura sp_addlogin, riga 56
    L'account di accesso test1 esiste già nel server di destinazione.
    Analogamente, se nel server esiste già un account di accesso diverso con lo stesso SID dell'account di accesso che si tenta di aggiungere, verrà visualizzato il seguente messaggio di errore:
    Server: messaggio 15433, livello 16, stato 1, procedura sp_addlogin, riga 93
    Il parametro sid specificato è in uso.
    È pertanto necessario controllare con attenzione l'output dei comandi, esaminare il contenuto della tabella sysxlogins e correggere gli errori in modo appropriato.
  • Il valore SID di un determinato account di accesso viene utilizzato come base per implementare l'accesso a livello di database in SQL Server. Per questo motivo, se lo stesso account di accesso è associato a due valori SID diversi a livello di database (in due database diversi nel server), potrà accedere solo al database per cui il relativo SID corrisponde al valore presente in syslogins. Una situazione di questo tipo può verificarsi se i due database in questione sono stati consolidati da due server diversi. Per risolvere il problema, l'account di accesso in questione dovrà essere rimosso manualmente dal database per cui esiste una mancata corrispondenza di SID utilizzando la stored procedure sp_dropuser e quindi aggiunto nuovamente utilizzando la stored procedure sp_adduser.
Proprietà

ID articolo: 246133 - Ultima revisione: 05/12/2011 22:28:00 - Revisione: 9.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

  • kbsqlmanagementtools kbhowtomaster kbinfo KB246133
Feedback