Warum ist es wichtig, unterstützte SQL Server-Ansichten mit SCCM-Berichterstellung zu verwenden?

Als ich im Mai auf dem Midwest Management Summit in der Mall of America (MMSMOA) war, kam das Thema der unterstützten SQL Server-Ansichten auf. Jemand erwähnte eine einfache Möglichkeit, WQL-Abfragen in SQL-Abfragen zu konvertieren. Dieser „Tipp“ erstellte jedoch keine unterstützten SQL Server-Ansichten, und nicht jeder schien zu erkennen, dass dies eine schlechte Idee war. Um dieses Thema näher zu beleuchten, gebe ich in diesem Beitrag einige Hintergrundinformationen dazu, warum Sie nur unterstützte SQL Server-Ansichten verwenden dürfen und, was noch wichtiger ist, was passiert, wenn Sie sie nicht verwenden.

Wenn Sie sehen möchten, welche SQL Server-Ansichten und -Funktionen vom SCCM-Produktteam unterstützt werden, werfen Sie einen Blick auf diesen Blogbeitrag, den ich kurz nach MMSMOA veröffentlicht habe: „Was sind die unterstützten SQL Server-Ansichten für die SCCM-Berichterstellung?

Warum sind unterstützte SQL Server-Ansichten wichtig?

Es gibt drei Hauptgründe, warum Sie immer unterstützte SQL Server-Ansichten und -Funktionen verwenden möchten, und Sie sollten die nicht unterstützten mit der System Center Configuration Manager (SCCM)-Berichterstellung vermeiden.

Sie sind:

1. Transaktionssperre

2. Gewähren von dbo-Berechtigungen an Benutzer

3. Ändern von Berechtigungen für eine Tabelle/Ansicht/usw.

Transaktionssperre

SCCM speichert Daten in der SQL Server-Datenbank und ein Problem, das auftreten kann, wenn auf Daten aus der SQL Server-Datenbank zugegriffen wird, wird als „Transaktionssperre“ bezeichnet. Warum ist dies für einen SCCM-Administrator und insbesondere für die SCCM-Berichterstellung wichtig? Hier ist die einfache Antwort: Wenn eine nicht unterstützte SQL Server-Abfrage für einen Bericht ausgeführt wird, wird eine Sperre für die abgefragte Tabelle erstellt. Diese Sperre KANN SCCM selbst daran hindern, Daten in die Datenbank zu aktualisieren oder einzufügen, oder sie kann sogar andere Abfragen blockieren.

Weitere Informationen finden Sie hier Paketüberfluss Post, Grundlegendes zu SQL Server LOCKS bei SELECT-Abfragen.

Die Microsoft-Dokumente (siehe Link unten) sind auch gut darin, dieses Problem zu erklären:

In jeder Datenbank führt eine falsche Verwaltung von Transaktionen häufig zu Konflikten und Leistungsproblemen in Systemen mit vielen Benutzern. Da die Anzahl der Benutzer, die auf die Daten zugreifen, zunimmt, wird es wichtig, über Anwendungen zu verfügen, die Transaktionen effizient verwenden.

Später, unter Grundlagen zu Sperren und Zeilenversionierung, die docs sagen:

Jede Transaktion fordert Sperren unterschiedlichen Typs für die Ressourcen an, wie z. B. Zeilen, Seiten oder Tabellen, von denen die Transaktion abhängig ist. Die Sperren hindern andere Transaktionen daran, die Ressourcen in einer Weise zu ändern, die Probleme für die Transaktion verursachen würde, die die Sperre anfordert. Jede Transaktion gibt ihre Sperren frei, wenn sie keine Abhängigkeit mehr von den gesperrten Ressourcen hat.

Vereinfacht gesagt bedeutet dies, dass keine zwei Abfragen gleichzeitig dasselbe Objekt verwenden können. Weitere Informationen finden Sie in den Microsoft SQL Server-Dokumenten: Leitfaden für Transaktionssperrung und Zeilenversionierung.

Transaktionssperrlösung

Um dieses Problem (Transaction Locking) zu lösen, verwendet das SCCM-Team den (Nolock) Abfragehinweis in unterstützten SQL Server-Ansichten. Der Abfragehinweis (Nolock) verhindert, dass dieses Problem auftritt.

Berechtigungen

Ist Ihnen das schon einmal passiert? Sie erstellen einen Bericht mit nicht unterstützten SQL Server-Ansichten, testen ihn und laden ihn dann auf Ihre SSRS-Site hoch. Es funktioniert gut für Sie, also geben Sie den Bericht an jemand anderen weiter und sie führen ihn aus und erhalten die folgende Nachricht:

  • Bei der Berichtsverarbeitung ist ein Fehler aufgetreten. (rsProcessingAborted)
    • Abfrageausführung für Dataset 'DataSet1' fehlgeschlagen. (rsErrorExecutingCommand)
      • Die SELECT-Berechtigung wurde für das Objekt 'vSMS_Advertisement', Datenbank 'CM_CB1', Schema 'dbo' verweigert.

Sobald Sie feststellen, dass es sich um ein Berechtigungsproblem handelt, führen Sie eine von zwei schlechten Ideen aus. Du entweder Erteilen Sie einem Benutzer dbo-Berechtigungen oder Berechtigungen für eine Tabelle/Ansicht/etc ändern.

Erteilen von DBO-Berechtigungen an einen Benutzer

Standardmäßig haben nur die Konten des Datenbankbesitzers (DBO) oder des Systemadministrators (SA) in SQL Server Zugriff auf alle Objekte in der Datenbank. Da nicht unterstützten SQL Server-Ansichten, -Funktionen usw. keine Berechtigungen zugewiesen sind, können nur Konten, die als DBO oder SA gekennzeichnet sind, auf die Daten dieser Ansichten, Tabellen usw. zugreifen Daten in den Ansichten, Tabellen usw. eine Ihrer Möglichkeiten besteht darin, ihnen SA- oder DBO-Rechte für die Datenbank zu erteilen.

Dies ist natürlich aufgrund der inhärenten Sicherheitsrisiken eine schlechte Idee. Der eine „Vorteil“ ist, dass diese Methode keine Auswirkungen hat, wenn SCCM zu einem späteren Zeitpunkt auf eine höhere Version aktualisiert wird.

Unterstützte SQL Server-Ansichten - Berechtigungen

Ändern von Berechtigungen für eine Tabelle, Ansicht usw.

Ihre andere Option ist weniger riskant, weist jedoch immer noch Sicherheitsprobleme auf. Sie können einfach die Berechtigungen "Auswählen" oder "Ausführen" für die Ansichten, Tabellen usw. anpassen. Obwohl diese Methode ein geringeres Sicherheitsrisiko darstellt, kann sie Sie möglicherweise daran hindern, zu einem späteren Zeitpunkt auf eine neuere Version von SCCM zu aktualisieren. Wieso den? Das Bearbeiten der SCCM-Datenbank wird nicht unterstützt. Möchten Sie außerdem wirklich die Berechtigungen für alle Ansichten, Tabellen usw. ändern, die Sie verwenden möchten?

Unterstützte SQL Server-Ansichten

Welche Vorteile bietet die Verwendung unterstützter SQL Server-Ansichten und -Funktionen mit der SCCM-Berichterstellung? Neben der Vermeidung der oben genannten Transaktionssperr- und Berechtigungsprobleme gibt es hier noch ein paar weitere Gründe:

· Rollenbasierte Verwaltung (RBA). Sie können RBA für Abfragen nutzen. Das bedeutet, wenn jemand mit einem RBA-Bericht keine Daten sehen sollte, wird er sie auch nicht sehen!

· Leistungsoptimierungen. Microsoft verwendet heutzutage viel Mühe in die Optimierung von SQL Server, damit die Leistung schneller und besser ist! In dieser Hinsicht aktualisieren sie nur unterstützte SQL Server-Ansichten. Aus diesem Grund sind die RBA-Funktionen der Ort, an dem sie die meiste Anstrengung unternehmen. Sie können sehen, was ich in diesem Beitrag meine, “RBA- und Nicht-RBA-Abfragen: Wann ist langsamer eigentlich schneller?

Welche SQL Server-Ansichten und -Funktionen werden von Microsoft unterstützt? Die kurze Antwort ist ein beliebiges SQL Server-Objekt mit den Berechtigungen „Auswählen“ oder „Ausführen“, die der Rolle smsschm_users zugewiesen sind. Die vollständige Liste finden Sie in meinem Blog-Beitrag „Was sind die unterstützten SQL Server-Ansichten für die SCCM-Berichterstellung??"

Bei Fragen zu unterstützten SQL Server Ansichten und Funktionen können Sie mich gerne kontaktieren unter @GarthMJ.

Sehen Sie, wie Right Click Tools die Art und Weise verändert, wie Systeme verwaltet werden.

Steigern Sie sofort die Produktivität mit unserer limitierten, kostenlos nutzbaren Community Edition.

Starten Sie noch heute mit Right Click Tools:

Teile das:

Support

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Kontakt

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Durch das Absenden dieses Formulars erklären Sie sich damit einverstanden, dass Recast Software Ihre Daten wie in Recast Software beschrieben verarbeiten kann Datenschutz-Bestimmungen.

de_DEGerman