Besteht das Risiko, Benutzern die SQL Server SHOWPLAN-Berechtigung zu erteilen?

23

Ich optimiere die Leistung einer großen SQL Server 2008-Datenbank, und die IT-Gruppe ist nicht bereit, SHOWPLAN-Berechtigungen zu erteilen. In der Vergangenheit war "Ausführungsplan anzeigen" die effektivste Methode, um die Leistung einzelner Abfragen und Prozeduren zu verstehen.

Welche Risiken birgt die Erteilung dieser Genehmigung? Gibt es eine berechtigte Begründung für diese Einschränkung für eine Entwicklungskopie der Datenbank?

Hinweis: Diese SQL-IT-Gruppe verfügt über mehr als 200 Datenbanken unter einer einzelnen SQL Server-Instanz. Vielen Dank.

Antwort : Ich gehe davon aus, dass es keine anderen signifikanten Sicherheitsrisiken gibt als die unten aufgeführten. Grundsätzlich ist eine Einschränkung auf eine Entwicklungsdatenbank kontraproduktiv.

Ich werde dies aktualisieren, wenn jemand eine bessere Antwort findet. Danke für deine Kommentare!

RaoulRubin
quelle

Antworten:

19

Schauen Sie sich Showplan Security in der Onlinedokumentation an. Dort heißt es:

Benutzer , die haben SHOWPLAN, ALTER TRACEoder die VIEW SERVER STATEErlaubnis können Abfragen anzeigen, die in Showplanausgabe erfasst werden. Diese Abfragen können vertrauliche Informationen wie Kennwörter enthalten. Deshalb empfehlen wir , dass Sie nur diese Berechtigungen für Benutzer zu gewähren , die berechtigt sind sensible Informationen, wie Mitglieder der anzuzeigen Db_owner feste Datenbankrolle, oder Mitglieder der Sysadmin der festen Server - Rolle. Es wird außerdem empfohlen, Showplan-Dateien oder Trace-Dateien, die Showplan-bezogene Ereignisse enthalten, nur an einem Speicherort zu speichern, der das NTFS-Dateisystem verwendet, und den Zugriff auf Benutzer zu beschränken, die zum Anzeigen vertraulicher Informationen berechtigt sind.

Betrachten Sie beispielsweise die folgende Abfrage:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

Wenn ein böswilliger Benutzer eine Showplan-Ausgabe für eine Reihe von Abfragen wie in diesem Beispiel erstellt und den Wert "10" im Prädikat jedes Mal durch andere Konstanten ersetzt, kann der Benutzer durch Lesen auf eine ungefähre Datenverteilung der Spaltenwerte für Spalte_1 in Tabelle_1 schließen Die geschätzte Zeilenanzahl.

Dieses Risiko scheint vernachlässigbar, insbesondere wenn es sich um einen Entwicklungsserver handelt, auf dem alle Abfragen von Entwicklern und IT-Mitarbeitern und nicht von Benutzern stammen.

Paul White sagt GoFundMonica
quelle