Mein Team ist kürzlich in ein formalisierteres System der SQL Server-Datenbanküberwachungs- und -bereitstellungssteuerelemente gewechselt, und als Ergebnis wurden mehrere Berechtigungen eingeschränkt.SQL Server-Berechtigungstypen
Viele von uns sind mit der SQL Server-Sicherheit nicht vertraut und haben Szenarien kennengelernt, in denen wir nur eine Zugriffsbeschränkung für beispielsweise TRUNCATE TABLE
in der Produktion bereitstellen.
Es ist nur ein Ärgernis in diesem Stadium, aber ich habe versucht, eine konsolidierte Liste zu finden (cheatsheet? Cabsheet? Referenzsuche?), Leicht gegen solche Funktionen zu überprüfen, so dass es nicht so einfach passiert, aber ich habe keine gefunden.
Ich weiß, dass der MSN-Artikel für jede Funktion diese auflistet, aber ich möchte nicht einzeln auf die spezifische Website für jede gebräuchliche und seltene Funktion nur zu überprüfen suchen, besonders wenn ich es mehr als tun muss Einmal, weil ich (zum Beispiel) vergessen habe.
Die nächstgelegene ich fand, waren Orte wie diese:
https://www.mssqltips.com/sqlservertip/1718/database-level-permissions-for-sql-server-2005-and-2008/
https://www.simple-talk.com/sql/database-administration/sql-server-security-cribsheet/
... aber sie waren unvollständig (konnte nicht in beide finden TRUNCATE) und ein wenig lang: Ich hoffe, es gibt irgendwo eine Tabelle, die einfach 'Aktion -> Aktionsname -> Berechtigungsname -> Server-/Tabellenebene -> Standardrolle' oder etwas zusammen an einer Stelle setzt.
Gibt es irgendwo eine solche Liste?
Eigentlich stolperte auf diese fast nach der Veröffentlichung dieses Artikels, aber nicht über Google (auf der Website mssqltips). Diese sind definitiv hilfreich, aber decken Berechtigungen auf Tabellenebene immer noch nicht ab, sodass TRUNCATE weiterhin fehlt ... https://www.mssqltips.com/sqlservertip/1714/server-level-permissions-for-sql-server -2005-and-sql-server-2008/ https://www.mssqltips.com/sqlservertip/1718/database-level-permissions-for-sql-server-2005-and-2008/ –
Für Bereitstellungszwecke Sie sollten ein Benutzerkonto erstellen, das mit der Rolle "db_owner" oder "db_ddladmin" erstellt wurde, und dieses Konto (über ein Bereitstellungsdienstprogramm?) verwenden, um die Datenbankänderungen in der Produktion bereitzustellen. Dies würde auch beim Auditing und bei den besseren Bereitstellungskontrollen helfen, da nur ein Konto Bereitstellungen durchführen würde. – AKS
Nicht ... ganz was ich meinte. Wenn Sie die Tabelle als Beispiel abschneiden, sollte die Aktion regelmäßig in einer gespeicherten Prozedur ausgeführt werden, in diesem Fall durch ein Benutzerkonto, das noch kein "db_owner" war. Der Benutzer, der die Bereitstellung durchgeführt hat, war "db_owner", aber es war nicht das Konto, das diesen SP ausführen sollte. Da wir als Eigentümer in unseren lokalen Datenbanken verschlüsselt waren, kam es nie zu einem Genehmigungsproblem, so dass niemand etwas vermutete, bis es eingesetzt wurde und verwendet wurde. –