Fragensteller
InfoPath Formular mit Anbindung an SQL 2008 R2 Cluster - Authentifizierungsproblem

Frage
-
Hallo zusammen,
ich habe ein Formular mit InfoPath 2010 erstellt und möchte dies auf dem Sharepoint Server 2010 veröffentlichen.
Als ich die externen Datenverbindungen noch nicht implementiert hatte, hat das Formular in Sharepoint funktioniert.
Lokal im InfoPath Designer funktioniert das Formular mit DB Anbindung. Für die DB Verbindung habe ich Windowsauthentifizierung gewählt.
Der Windowsuser ist auch entsprechend auf dem SQL Server berechtigt.
Wenn ich das Formular hochlade funktioniert es im Sharepoint allerdings nicht. Es kommt die Meldung:
: DataAdapterException, Ausnahmemeldung: Vom Formular kann keine Verbindung mit der Datenquelle hergestellt werden.
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.)Die Datenverbindungsdateien habe ich in eine Datenverbindungsbibliothek hochgeladen.
Warum nimmt er ANONYMOUS um sich am SQL Server anzumelden und nicht den in der Website angemeldeten Domänenuser?
Einfach ANONYMOUS im SQL Server berechtigen geht nicht... BSI.. In dem SQL Cluster ist NTLM aktiv. Kerboros ist deaktiv. Kerboros aktivieren ist nicht möglich, da es sich um einen produktiven Cluster handelt und dieser dadurch nicht gefährdet werden soll.
Einfach SQL Authentifizierung kann ich leider nicht nehmen, da ich später im SELECT die Funktion "current_user" benutzen muss um nach den aktuellen User zu filtern.
Was kann ich hier tun?
Vielen Dank für eure Hilfe!
Gruß
Alle Antworten
-
Hallo,
das sieht nach einem Double Hop Netzwerkproblem aus. Ihr SharePoint Server ist nicht berechtigt ihre clientseitige Anmeldung an einen dritten Server (den Datenbankserver) weiterzugeben. Da hilft nur SQL Authentifizierung, Kerberos oder eventuell Secure Store / BCS.
Grüße, Frank
-
Hallo,
vielen Dank für die Antwort.
Ja, das mit dem Double Hop hatte ich schon gelesen. Das Problem ist, dass ich ja den Username brauche.
Aber wenn ich SQL Authentifizierung nehme wäre es vielleicht lösbar...
Wenn ich die Datenverbindung definiere, gebe ich ja schon das SQL Statement mit.
select k.c_ext_nr_alt from KOSTENSTELLE k where k.I_KST_NR in (select p.I_STAMMKOST_NR from PERS_HIST p where p.I_PERS_NR in (select f.i_pers_nr from PERS_FEST f where f.C_USERNAME = (select RIGHT (CURRENT_USER, 7))) and p.d_gueltig_ab < getdate() and p.D_GUELTIG_BIS > GETDATE())
Kann ich in diesen Block ein Feld übergeben?
Ich habe im Formular mit der Funktion userName() den User in einem Feld verfügbar. Kann ich das Feld an die Datenverbindung übergeben?
Dann könnte ich SQL Authentifizierung nutzen und in dem Statement hätte ich den angemeldeten User verfügbar...Also quasi so: (die richtige Syntax kenne ich nicht)
select k.c_ext_nr_alt from KOSTENSTELLE k where k.I_KST_NR in (select p.I_STAMMKOST_NR from PERS_HIST p where p.I_PERS_NR in (select f.i_pers_nr from PERS_FEST f where f.C_USERNAME = @Feld1)
and p.d_gueltig_ab < getdate() and p.D_GUELTIG_BIS > GETDATE())
Gruß
Philipp
- Bearbeitet LangeKRZ Dienstag, 19. Juni 2012 10:56
-
Hallo Philipp,
Bist Du hier vielleicht weitergekommen?
Gruss,
AlexAlex Pitulice, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.