SQL Server to SQL Server Linked Server Configurazione

, Author

Dalla mia comprensione di questo problema, è un problema “HOP”.

cioè, stai cercando di usare il Server A per trasmettere le tue informazioni di login (con SSPI) al Server B.

In SQL Server 2005, hanno aggiunto una serie di problemi di sicurezza che rendono questo più difficile di quanto dovrebbe essere. Le parole “Kerberos Authentication” diventeranno il bagno della vita per la maggior parte degli amministratori di sistema/DBA. È effettivamente utilizzato per il single sign-on.

Qui ci sono le basi di ciò di cui avete bisogno. 1) I server (A e B) devono essere configurati in Active Directory (AD) con la delega per Kerberos abilitata. (questo è impostato tramite il tuo pannello di amministrazione di Active Directory)

2) L’account di servizio sotto il quale girano i tuoi server SQL deve anche avere la delega abilitata (anche questo è impostato tramite il tuo pannello di amministrazione di Active Directory). – Se non sono in esecuzione sotto un account di servizio, è necessario crearne uno.

3) I server devono avere SPN impostati per l’istanza e il nome dell’host e della macchina. (Utilizzando uno strumento chiamato SetSPN in Windows Support Tools)

Support Tools (SetSPN è in questo set) http://www.microsoft.com/downloads/details.aspx?FamilyID=96a35011-fd83-419d-939b-9a772ea2df90&DisplayLang=en

(Panoramica sull’aggiunta di un SPN) http://technet.microsoft.com/en-us/library/bb735885.aspx

4) Potrebbe essere necessariopotrebbe essere necessario impostare il vostro database su “affidabile”

ALTER DATABASE SET trustworthy on

5) Una volta che tutto questo è completo, riavviare le vostre istanze.

6) Prova a creare di nuovo il tuo server collegato.

Finalmente, puoi testare la tua connessione a SQL Server. Questo dovrebbe funzionare bene se hai impostato tutto correttamente.

SELECT *FROM OPENDATASOURCE('SQLNCLI', 'Data Source=ServerB;Integrated Security=SSPI;' ).MASTER.dbo.syscolumns

Questo ti dirà il tipo di autenticazione della tua connessione.

select auth_scheme from sys.dm_exec_connections where [email protected]@SPID

Vuoi ottenere “KERBEROS” qui e non “NTLM”.

È un pendio scivoloso, KERBEROS e delegazione di passaggio, rispettatelo e alla fine lo avrete.

Riferimenti Kerberos http://blogs.msdn.com/sql_protocols/archive/2005/10/12/479871.aspx

http://blogs.msdn.com/sql_protocols/archive/2006/12/02/understanding-kerberos-and-ntlm-authentication-in-sql-server-connections.aspx

http://blogs.iis.net/brian-murphy-booth/archive/2007/03/09/the-biggest-mistake-serviceprincipalname-s.aspx

Altre manifestazioni del problema http://www.sqlservercentral.com/Forums/Topic460425-359-1.aspx

http://msdn2.microsoft.com/en-us/library/aa905162(sql.80).aspx

http://msdn2.microsoft.com/en-us/library/ms189580.aspx

Spero che tutto questo aiuti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *