Domanda

Ecco il mio scenario.

Ho SharePoint 2010 in esecuzione su un server, con SQL Server in esecuzione su un altro.Entrambe le macchine si trovano sullo stesso dominio, ma gli accessi coinvolti sono locali su ciascuna macchina.SharePoint viene eseguito come NT Authority etwork Service, se questo fa qualche differenza.

Ho creato un BCS che estrae i dati dalla rimozione di SQL Server.La stringa di connessione appare come segue: Data Source={0}; Initial Catalog={1};User Id={2}; Password={3}; Integrated Security=SSPI.Ho confermato che la stringa di connessione è ben formata, una volta sostituite tutte le {x}.

Funziona perfettamente, a condizione che tu acceda al sito di SharePoint da un browser in esecuzione sulla stessa macchina (la macchina che ospita SharePoint, vale a dire).Una volta che ti connetti ad esso da un browser su un computer diverso, fallisce.

L'utilizzo di un profiler su SQL Server rivela che quando si accede a SharePoint "localmente", l'utente che effettua le query è l'account che ha effettuato l'accesso.Quando è in esecuzione in remoto, l'utente è "anonimo".A causa delle autorizzazioni dell'account, il primo riesce mentre il secondo fallisce.In nessun caso l'utente è effettivamente quello indicato nella stringa di connessione.

Questa risposta indica che il problema è probabilmente correlato al pool di connessioni, ma non mi ha aiutato a risolverlo.

Quindi, in poche parole, come posso fare in modo che questo BCS rispetti effettivamente la coppia nome utente/password della stringa di connessione?Oppure, in mancanza di ciò, come posso ottenere lo scopo equivalente?La configurazione del server (SharePoint su uno, SQL Server su un altro) non è negoziabile;Purtroppo.

È stato utile?

Soluzione

Puoi avere la Sicurezza Integrata XOR puoi avere l'autenticazione SQL.Ma non puoi mescolarli.Una volta specificato Integrated Security=SSPI, il nome utente e la password verranno ignorati, poiché verrà utilizzata la sicurezza integrata.Se desideri specificare un utente e una password di autenticazione SQL, rimuovi la parte "sicurezza integrata".

Come con qualsiasi connessione di autenticazione integrata, i server remoti rientrano nella restrizione della delega vincolata e si autenticano come anonimi.Per consentire alle credenziali rappresentate da NT di passare all'hop successivo (SQL Server), è necessario abilitare la delega vincolata, vedere:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top