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.




Datenbankzugriff

Unbeantwortet Dieser Beitrag hat 12 Antworten

Ohne Rang
6 Beiträge
Bodo Jaeger erstellt 27 Apr. 2011 12:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich mache gerade meine ersten Versuche mit Sharepoint, und hab auch schon ein Problem.

Ich habe ein Webpart geschrieben, das auf eine externe Datenbank zugreift, bzw zugreifen soll.

Leider versucht die Sharepoint Seite, auf der ich das Teil benutzen will, sich mit dem Konto NT AUTHORITY an der Datenbank anzumelden, statt das Konto zu verwenden, unter dem ich die Seite aufgerufen hab.

Wie bringe ich Sharepoint dazu, für externe Zugriffe das aktuelle Benutzerkonto zu verwenden?

BJ

Alle Antworten

Ohne Rang
91 Beiträge
Thomas Spitzer Als Antwort am 28 Apr. 2011 10:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hast du das Webpart mit VSTO oder SPD erstellt ?

LG Thomas

Ohne Rang
6 Beiträge
Bodo Jaeger Als Antwort am 28 Apr. 2011 10:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das Webpart hab ich mit VS 2010 Premium erstellt.

Ohne Rang
6 Beiträge
Bodo Jaeger Als Antwort am 28 Apr. 2011 10:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Für die Authentifizierung gegenüber der Datenbank verwende ich Trusted_Connection=yes.

Das führt dazu, das SP die Verbindung offensichtlich unter seinem Namen aufbaut, und nicht, unter dem Namen des Anwenders, der die Seite nutzt. Es findet also keine impersonifizierung statt.

Jedenfalls stellt sich mir das so da.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 28 Apr. 2011 11:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dabei wird das Konto des Application Pools verwendet unter dem die SharePoint-Anwendung läuft. Bei einer "richtigen" Installation sollte das ein Domänenkonto sein, dem Du Zugriff auf die Datenbank geben kannst. Wenn ich mich richtig erinnere, heißt es Trusted_Connection=true (nicht yes)

Falls es sich um eine SQL Server Datenbank handelt, wäre es wahrscheinlich viel einfacher die als externen Inhaltstyp einzubinden. Das kann man mit SharePoint Designer "zusammenklicken".

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
91 Beiträge
Thomas Spitzer Als Antwort am 28 Apr. 2011 11:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich würde auch den Rat von Andi befolgen und das mit dem SPD machen. Aber auch bei den Datenverbindungen im SPD kann man nur ein bestimmtes Konto angeben, oder SSO verwenden, soweit ich weiß, oder ?

LG Thomas

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 28 Apr. 2011 11:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

oder eben das Konto des App Pools verwenden. Dazu muß man aber die Verbindung anlegen, speichern und dann neu öffnen. Dann kann man sie auf RevertToSelf stellen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Bodo Jaeger Als Antwort am 29 Apr. 2011 08:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Tja,

am sinnvollsten schien es mir, die Konten des Application Pools zu ändern. Ich hab also alle Konten die ich finden konnte auf einen Account gesetzt, der auf die Datenbank zugreifen kann, und den Server im IIS neu gestartet. Dann würde Sharepoint zwar als anomysierer des Anwenders gegenüber der Datenbank arbeiten (für mich als Windows-Forms-Entwickler ein seltsamer Gedanke), aber vielleicht geht es ja nicht anders.

Das Webpart ruft nur eine SP auf dem Server auf, die einfach einen Datensatz mit 2 Spalten zurück liefert. Der gleiche Programmcode als Konsolenanwendung auf dem Sharepoint-Server funktioniert wunderbar.

Ich bekomme aber immeroch den Fehler:

Fehler bei der Anmeldung für den Benutzer 'NT AUTHORITY\ANONYMOUS LOGON'

Wie das mit dem SPD und einem externen Inhaltstyp funktionieren soll ist mir auch nicht klar. Zum einen schaffe ich es nicht, für eine SP einen "Vorgang" zu erstellen (angeblich sind Eingabeparameter erforderlich, obwohl die SP keine hat), und zum anderen müsste ich in dem Webpart diesen Inhaltstyp ja irgendwie benutzen. Das wäre jetzt beispielsweise zwar möglich, aber generell würde ich gerne vorhandene DLL's für den Datenzugriff benutzen, die durch den Webpart nur abgerufen werden.

Gruß Bodo

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 29 Apr. 2011 09:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Bodo Jaeger"]Ich hab also alle Konten die ich finden konnte auf einen Account gesetzt, der auf die Datenbank zugreifen kann, und den Server im IIS neu gestartet[/quote]

Du solltest diese Konten aber besser über die Zentraladministration von SharePoint ändern und nicht über die IIS-managementkonsole. Das kann in SharePoint sonst unerwünschte Nebeneffekte haben.

[quote user="Bodo Jaeger"]Dann würde Sharepoint zwar als anomysierer des Anwenders gegenüber der Datenbank arbeiten (für mich als Windows-Forms-Entwickler ein seltsamer Gedanke), aber vielleicht geht es ja nicht anders.[/quote]

Das hat man bei Webanwendungen immer. Es nennt sich "Double Hop Problem".

[quote user="Bodo Jaeger"]Wie das mit dem SPD und einem externen Inhaltstyp funktionieren soll ist mir auch nicht klar. Zum einen schaffe ich es nicht, für eine SP einen "Vorgang" zu erstellen (angeblich sind Eingabeparameter erforderlich, obwohl die SP keine hat), und zum anderen müsste ich in dem Webpart diesen Inhaltstyp ja irgendwie benutzen[/quote]

Du brauchst dann kein eigenes Webpart mehr. Externe Daten werden in SharePoint wie eine eigene Liste oder Bibliothek dargestellt. D.h. Du mußt Dich dann überhaupt nicht mehr darum kümmern.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Bodo Jaeger Als Antwort am 29 Apr. 2011 09:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Unter der Zentraladministration gibt es nur ein verwaltetes Konto. Unter diesem Konto läuft der Server, und das Konto hat Zugriff auf die Datenbank.

Ich hab mal bei allen Dienstkontos auch dieses Konto ausgewählt.

Als Authentifizierungsmethode verwende ich Windows und als Authentifizierungsanbieter NTLM. Kann das der Grund sein, das es immernoch nicht geht?

Gruß Bodo

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 29 Apr. 2011 09:52
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Bodo Jaeger"]Als Authentifizierungsmethode verwende ich Windows und als Authentifizierungsanbieter NTLM. Kann das der Grund sein, das es immernoch nicht geht?[/quote]

Jep, mit Kerberos könntest Du den angemeldeten Benutzer an die Datenbank durchreichen (ist aber nicht ganz einfach einzurichten). Siehe oben "Double Hop Problem"

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
6 Beiträge
Bodo Jaeger Als Antwort am 29 Apr. 2011 13:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hab ich das jetzt richtig verstanden?

Es nicht möglich Webparts zu verwenden, die auf eine Datenbank zugreifen, wenn der Authentifizierungsanbieter NTLM ist?

 

Mir scheint, das die größte Effizienz des Sicherheitssystemes darin besteht, das es unverständlich ist :-)

Gruß Bodo

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 29 Apr. 2011 14:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Doch, natürlich geht das auch mit NTLM. Allerdings immer nur mit einem festen Account. Wenn der jeweils angemeldete Benutzer durchgereicht werden soll, braucht es Kerberos.

Viele Grüße
Andi
af @ evocom de
Blog