SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




InfoPath Formular mit Anbindung an SQL 2008 R2 Cluster - Authentifizierungsproblem

Unbeantwortet Dieser Beitrag hat 7 Antworten

Ohne Rang
8 Beiträge
Firetux2012 erstellt 19 Juni 2012 11:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juni 2012 12:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das nennt sich Double Hop Problem und kann im Grunde nur durch Kerberos gelöst werden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
8 Beiträge
Firetux2012 Als Antwort am 19 Juni 2012 12:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juni 2012 13:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das könnte gehen, wenn Du es in eine Stored Procedure packst und den Username als Parameter definierst. In InfoPath kannst Du dann vor dem Abrufen der Daten den Parameter setzen (mit der Aktion "Feld in Datenquelle festlegen).

Ob der Zugriff über SQL Authentifizierung aber so sinnvoll ist, steht auf einem anderen Blatt. DBAs mögen das normalerweise gar nicht...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
8 Beiträge
Firetux2012 Als Antwort am 19 Juni 2012 13:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke! Das klingt ja schonmal ganz gut...!

Wie genau mache ich das "Feld in Datenquelle festlegen" in InfoPath?
Könntest du das bitte etwas genauer beschreiben?

... das ist mein erster InfoPath Formular ;-)

 

Danke sehr!

Gruß

Philipp

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juni 2012 14:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Naja, irgendwann müssen die Daten der Quelle abgefragt werden, z.B. auf einen Button-Klick. Dort hinterlegst Du eine Regel und die kann mehrere Aktionen haben;
Aktion 1: Feld in Datenquelle festlegen
Aktion 2: Datenquelle abfragen

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
8 Beiträge
Firetux2012 Als Antwort am 19 Juni 2012 14:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

also ist es nicht möglich ein im Formular vorhandes Feld in diesem Dialog zu nutzen?

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Juni 2012 15:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich glaube nicht, aber ich bin auch kein InfoPath-Experte.

Viele Grüße
Andi
af @ evocom de
Blog