Benutzer mit den meisten Antworten
Abfrage von der Systemtabelle "sys.database_files" und dem Befehl "sp_spaceused"

Frage
-
Hallo zusammen,
habe aktuell für ein Projekt das Problem, dass ich für meinen Lokal System User die
benötigten Rechte für die Systemtabelle "sys.database_files" und dem Befehl "sp_spaceused" geben muss.
Über das Setzen der Rolle "sysadmin" erreiche ich zwar auch das gewollte Ergebnis, dass ist aber ausdrücklich nicht
erwünscht.
Mein "NT-AUTORITÄT\SYSTEM"-User ist in der public-Serverrolle, ansonsten besitzt er noch die Permissions von
"GRANT VIEW SERVER STATE TO 'NT-AUTORITÄT\SYSTEM'".
Damit komme ich bis zur Systemtabelle "sys.database".
Kennt sich wer aus, welche Permission ich dafür vergeben muss, bzw. was mir noch fehlt?
Bin langsam am verzweifeln.
Vielen Dank im voraus.
PS: Es handelt sich um eine MSSQL 2008 Datenbank, 10.50.4000.0, Express Edition
- Bearbeitet Kruzgoth Montag, 23. Juli 2018 10:32
Antworten
-
Hallo Olaf,
die Berechtigung zu "sys.databases" habe ich bereits hingekommen mit "VIEW ANY SERVER STATE".
Die Berechtigungen für sys.database_files und sp_spaceused scheinen aber komplizierter als in den Artikeln vermerkt, da wie ich bereits geschrieben habe, mein User bereits die Rolle "public" besitzt und dennoch nicht die genannten Tabellen/Befehle lesen/ausführen kann.
Im Artikel steht nur "Requires membership in the public role."
Mit "GRANT VIEW ANY DEFINITION" bekomme ich es immerhin dazu, dass die Query für 3 von 5 Datenbanken durchläuft (master, msdb und tempdb), allerdings funktioniert weiterhin die Abfrage für die Datenbank "model" und eine Custom Datenbank nicht.
Daher bringen mir deine Verlinkungen leider gar nichts, die hatte ich schon durch =/
Brauche explizit den Befehl oder die Permission die Notwendig sind. Einfach nur Role "public" klappt nicht.
PS: Hat sich erledigt. Stellte sich heraus, dass der Lokal System Account nicht in allen Datenbank repliziert wurde. User angelegt und fertig.
Alle Antworten
-
Hallo,
die Berechtigungen stehen immer in den jeweiligen Artikeln vermerkt
sys.databases (Transact-SQL) hier reicht VIEW ANY DATABASE aus und das hat im Standard jeder User
sys.database_files dito
sp_spaceused (Transact-SQL) darf auch jeder, nur nicht mit Parameter "updateused"Olaf Helper
[ Blog] [ Xing] [ MVP] -
Hallo Olaf,
die Berechtigung zu "sys.databases" habe ich bereits hingekommen mit "VIEW ANY SERVER STATE".
Die Berechtigungen für sys.database_files und sp_spaceused scheinen aber komplizierter als in den Artikeln vermerkt, da wie ich bereits geschrieben habe, mein User bereits die Rolle "public" besitzt und dennoch nicht die genannten Tabellen/Befehle lesen/ausführen kann.
Im Artikel steht nur "Requires membership in the public role."
Mit "GRANT VIEW ANY DEFINITION" bekomme ich es immerhin dazu, dass die Query für 3 von 5 Datenbanken durchläuft (master, msdb und tempdb), allerdings funktioniert weiterhin die Abfrage für die Datenbank "model" und eine Custom Datenbank nicht.
Daher bringen mir deine Verlinkungen leider gar nichts, die hatte ich schon durch =/
Brauche explizit den Befehl oder die Permission die Notwendig sind. Einfach nur Role "public" klappt nicht.
PS: Hat sich erledigt. Stellte sich heraus, dass der Lokal System Account nicht in allen Datenbank repliziert wurde. User angelegt und fertig.