So lösen Sie Access Denied-Fehler mit stsadm -o retractsolution

8

Wir haben eine 2-Server-Farm, auf der MOSS 2007 SP1 ausgeführt wird. Ich bin Mitglied der Gruppe Administratoren auf beiden Servern.

Ich bin auch Mitglied der Gruppe Farmadministratoren.

Ich musste ein paar Lösungen aktualisieren, also begann ich natürlich mit dem Befehl stsadm retractsolution für die alten Lösungen. Unabhängig davon, welche Lösung ich versuche, den Befehl auszuführen, erhalte ich "Zugriff verweigert" zurück.

Die ULS-Protokolldatei gibt mir glücklicherweise ein wenig mehr Informationen:

System.Data.SqlClient.SqlException: Die vom Login angeforderte Datenbank "SharePoint_AdminContent" kann nicht geöffnet werden. Die Anmeldung ist fehlgeschlagen. Anmeldung für Benutzer '*** My Domain Login ***' fehlgeschlagen.

Was hier seltsam erscheint, ist die Tatsache, dass SharePoint versucht, mithilfe der integrierten Windows-Authentifizierung eine Verbindung mit MEINEM Konto herzustellen, anstatt eine Verbindung mit dem konfigurierten Farmdienstkonto herzustellen. Natürlich hat mein Konto keinen Zugriff auf die Admin-Inhaltsdatenbank.

Die Frage lautet also: Muss meinem Konto Berechtigungen für die Admin-Inhaltsdatenbank erteilt werden, um Verwaltungsaufgaben ausführen zu können? Ich hoffe nicht, also stimmt etwas anderes schrecklich nicht?

Trent
quelle

Antworten:

11

Die kurze Antwort lautet "Ja" für die meisten Aktivitäten, die Sie über STSADM für SQL-Datenbanken ausführen.

Für die überwiegende Mehrheit der STSADM-Befehle, die direkt über die SharePoint-API ausgeführt werden (anstatt Aufgaben zum Ausführen einer Aktion zu planen), liegt der Sicherheitskontext, in dem Befehle ausgeführt werden, bei Ihnen - dem angemeldeten Benutzer. Wie Sie in dem von Ihnen zitierten Beispiel gesehen haben, wird der Kontext Ihres Benutzerkontos für den Widerruf verwendet. Wenn Sie nicht über die entsprechenden Rechte in SQL verfügen, um den Vorgang auszuführen, schlägt dies fehl (wie Sie gesehen haben).

Dies steht im Gegensatz zu den meisten Aktivitäten, die Sie über die Benutzeroberfläche ausführen (dh Central Admin). In dem von Ihnen zitierten Beispiel würde das Zurückziehen der Lösung über Central Admin dazu führen, dass der Befehl im Kontext des Farmdienstkontos ausgeführt wird, da dieses Konto die Anwendungspoolidentität für die Central Admin-Site ist. Ergebnis: Der Widerruf würde erfolgreich sein, obwohl Sie (persönlich) keine Berechtigungen für die zugehörige Datenbank haben.

Wenn Ihre Umgebung so eingerichtet ist, dass Ihr Konto keinen Administratorzugriff auf die Datenbanken in der SharePoint-Farm hat, würde ich empfehlen, so viele Aktivitäten wie möglich über die Benutzeroberfläche auszuführen, um die Art von Sicherheitskontextproblemen zu vermeiden, auf die Sie stoßen . Sie werden feststellen, dass Sie das meiste, was Sie brauchen, auf diese Weise tun können. Eine bemerkenswerte Ausnahme, die in den Sinn kommt, ist das Hinzufügen einer Lösung (STSADM -o addolution) zum Farm Solution Store - es gibt kein UI-Gegenstück zum STSADM-Befehl.

Alternativ können Sie etwas Ähnliches tun, wie MadlyAlive vorgeschlagen hat (dh sich mit dem Farmdienstkonto anmelden) ... obwohl der lokale Administratorzugriff für das Farmdienstkonto von Microsoft weder erforderlich noch empfohlen wird. Sie können Ihrem Konto auch die minimalen Berechtigungen innerhalb von SQL Server erteilen lassen, die für die Ausführung Ihrer Vorgänge erforderlich sind.

Weitere Informationen finden Sie im KB-Artikel von Microsoft unter http://support.microsoft.com/kb/896148 .

Zusammenfassung der Faustregel: STSADM verwendet Ihren Kontokontext, Central Admin verwendet den Farmdienst-Kontokontext.

Ich hoffe das hilft!

Sean P. McDonough
quelle
Vielen Dank für die guten Einblicke und Informationen. Ich habe nie viel darüber nachgedacht, dass stsadm im Kontext des Benutzers ausgeführt wird.
Aaron Weiker
Ich habe auch das gleiche Problem, wenn ich versuche, die Lösung in der zentralen Administrator-Benutzeroberfläche zurückzuziehen. Aber das sind wirklich gute Informationen, die Sie geteilt haben. Ich werde jetzt den langwierigen bürokratischen Prozess starten, bei dem der entsprechende Zugriff auf den SQL Server angefordert wird.
Trent
Ich würde immer noch erwarten, dass mein Konto alle diese Berechtigungen erhält, wenn es der Gruppe "Farmadministratoren" hinzugefügt wird.
Vitule
Das Hinzufügen eines Kontos zur Gruppe "Farmadministratoren" in SharePoint Central Admin hat keinerlei Auswirkungen auf die Rechte dieses Kontos in SQL Server. Wenn Sie ein Farmadministrator werden, haben Sie (innerhalb von Central Admin) das Recht, Aktionen zu initiieren, die dann in Ihrem Namen vom Farm- / Timer-Dienstkonto über die Delegierung ausgeführt werden. Es werden jedoch keine Berechtigungen für die Datenbanken für das Benutzerkonto in SQL geändert . Das Werden eines Farmadministrators ist nur eine Änderung der SharePoint-Berechtigung - nicht von SQL Server.
Sean P. McDonough
0

Dies kann das Kernproblem vermeiden, aber wenn Sie versuchen, einen ähnlichen stsadm-Befehl auszuführen

stsadm -o preupgradecheck

Ich erhielt auch Zugriff verweigert. Durch Ausführen der Eingabeaufforderung als Administrator konnte ich sie jedoch ausführen.

Jeff Dalley
quelle