In Bezug auf die Auswirkungen auf die Leistung sind mir keine für diese oder andere Genehmigungen bekannt.
Bezüglich:
Was können sie tun, was sie vielleicht nicht tun dürfen?
Einfach ausgedrückt, sie können Dinge sehen, die sie vielleicht nicht sehen sollten. Und denken Sie nicht nur an SQL Server. Diese spezielle Berechtigung gilt auch für DMVs wie sys.dm_os_sys_info und einige andere, die Einblicke in den (Hardware, Dienste usw.) bieten. Sie wissen nicht immer, welche Informationen gegen Sie verwendet werden können. Und selbst wenn Sie damit einverstanden sind, dass jemand jetzt alles sieht, was mit dieser Berechtigung zulässig ist, werden manchmal DMVs in Service Packs / kumulativen Updates hinzugefügt, sodass möglicherweise eine neue Information angezeigt wird, die Sie nicht kennen.
Ich kann keine Anleitung finden, wie zu bewerten ist, ob es gewährt werden SOLLTE oder nicht.
Da Sie bereits erwähnt haben, dass Personen die erforderlichen Mindestberechtigungen erteilen müssen, kommt es darauf an: Benötigt jemand diese Berechtigung für die Ad-hoc- Nutzung? Bedeutet das, dass jemand die Flexibilität benötigt, seine eigenen Fragen zu stellen? Würde das Erstellen einer oder mehrerer gespeicherter Prozeduren und / oder TVFs mit mehreren Anweisungen funktionieren? Wenn ja, müssen Sie keinem Benutzer Berechtigungen erteilen (der dann für alles, was durch diese Berechtigung zulässig ist, frei ist), und stattdessen erteilen Sie die Berechtigungen für den Code (der nur das tut, wofür er codiert ist). Mit der Modul-Signierung erreichen Sie dies. Das allgemeine Konzept lautet:
- Erstellen Sie die gespeicherten Prozeduren und / oder TVFs mit mehreren Anweisungen, um die gewünschten Aktionen auszuführen.
- Gewähren
EXECUTE
diese Module allen Benutzern und / oder Rollen, die zum Ausführen dieser Aktionen erforderlich sind
- Erstellen Sie ein Zertifikat
- Signieren Sie die Module mit diesem Zertifikat (mit
ADD SIGNATURE
)
- Kopieren Sie das Zertifikat in die
[master]
Datenbank (dh erstellen Sie ein Zertifikat unter [master]
Verwendung des öffentlichen Schlüssels des Zertifikats, mit dem die Module signiert wurden.
- Erstellen Sie eine Anmeldung aus dem Zertifikat, in das kopiert wurde
[master]
- Gewähren Sie für diese zertifikatbasierte Anmeldung alle erforderlichen Berechtigungen auf Instanzebene (einschließlich des Hinzufügens zu Rollen auf Instanzebene).
Einige Beispiele finden Sie unter:
sys.dm_db_missing_index_details
), und er möchte wissen, welche Risiken dies genau birgt.