Wie erstelle ich eine Tabelle der Berechtigungen für einen Datenbankbenutzer-Datenbanktabellen gewährt?
-
03-07-2019 - |
Frage
Ich habe eine SQL Server 2000-Datenbank mit um ein paar hundert Tische. Es gibt mehrere SQL-Benutzerkonten, die auf diese Datenbank zugreifen können, aber jeder unterschiedliche Berechtigungen auf Tabellen in der DB gewährt.
Wie kann ich ein Skript erstellen, mir einen Bericht über die Berechtigungen für einen bestimmten Benutzer gewährt zu geben. das heißt zu erzeugen, so etwas wie:
Table SELECT DELETE UPDATE INSERT ALTER
----- ------ ------ ------ ------ -----
Invoices Yes No Yes Yes No
Orders Yes Yes Yes Yes No
Customers Yes No Yes Yes No
und so weiter. Es ist Freitag, mein SQL-fu niedrig ist heute und ich habe eine Million andere Dinge zu tun, bevor hier heute fertig zu werden, und wenn jemand ein handliches Skript hat, dies zu tun bereits dann wäre ich ewig dankbar:)
Lösung
Select TABLE_NAME, PRIVILEGE_TYPE
from INFORMATION_SCHEMA.TABLE_PRIVILEGES
where GRANTEE = @username
Dies wird in SQL Server arbeiten 2000/2005/2008
Andere Tipps
Ich bin nicht sicher, ob dieses Verfahren für SQL 2000 funktioniert oder nicht, ist es nicht das genaue Format, aber es könnte man einen Teil des Weges dorthin zu gelangen, können Sie es aus, um Ihr Format schwenken können.
sys.sp_helprotect @Username = 'myUser'