System.Data.SqlClient. SqlException (0x80131904): Der Benutzer hat nicht die Berechtigung, um diese Aktion auszuführen

Problem

System.Data.SqlClient.SqlException (0x80131904)

The user does not have permission to perform this action

Der Benutzer hat nicht die Berechtigung, um diese Aktion auszuführen

Unknown SQL Exception 297 occurred.

Details

Im SharePoint ULS-Logs tauchen regelmäßig folgende oder ähnliche Einträge auf:

  • System.Data.SqlClient.SqlException (0x80131904): Der Benutzer hat nicht die Berechtigung, um diese Aktion auszuführen.
  • System.Data.SqlClient.SqlException (0x80131904): The user does not have permission to perform this action.
  • SqlError: ‚Der Benutzer hat nicht die Berechtigung, um diese Aktion auszuführen.‘ Source: ‚.Net SqlClient Data Provider‘
  • Unknown SQL Exception 297 occurred.

ULS-Log Eintrag

Process OWSTIMER.EXE
Product SharePoint Foundation
Category Database
Level High-Critical

Fix

Alle SP-DBs befinden sich bei uns (bis auf die DBs der SSRS-Dienstanwendung) auf der SharePoint SQL-Server-Instanz. Die SSRS-DBs liegen auf der anderen SQL-Server-Instanz (ssrs-server.domain\SSRS,1234).

Da die SSRS-DBs der Dienstanwendung aber zur SP-Farm gehören, muss SP-Timerdienst (für Wartungsläufe etc.) auf diese SSRS-DBs zugreifen können.

In dem Fall waren für das Konto des Timer-Dienstes die Serverrollen „dbcreator“, „public“ und „securityadmin“ auf der SSRS-Instanz nicht ausreichend. Das Konto muss (wie auf der SP-Instanz schon der Fall ist) die Berechtigung „Serverstatus anzeigen“ (bzw. VIEW SERVER STATE) bekommen. Dazu folgendes durchführen.

View Server State für das Farmkonto

  1. Benutzerkonto des Timerdienstes (Farmkonto) herausfinden
  2. Microsoft SQL Server Management Studio starten und mit der in der Fehlermeldung erwähnten Instanz verbinden (in diesem Fall: ssrs-server.domain\SSRS,1234)
  3. Unter Anmeldungen das Farmkonto finden und Eigenschaften über rechte Maustaste (RM) öffnen.
  4. Auf der linken Seite „Sicherungsfähige Elemente“ öffnen
  5. Unten im Reiter „Explizit“ nach unten scrollen und in der Zeile „Serverstatus anzeigen“ bzw. „View Server State“ das Kästchen „Erteilen“ aktivieren.

SQL-Server - Anmeldungseigenschaften - Serverstatus anzeigen erteilen

Links

  1. social.technet.microsoft: Search Service Application creation causes DB errors in SharePoint Logs
  2. stackoverflow: SQL Server 2012 – Permission for access to sys.dm_db_index_usage_stats in Contained Database

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.