none
Abfrage von der Systemtabelle "sys.database_files" und dem Befehl "sp_spaceused" RRS feed

  • 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
    Montag, 23. Juli 2018 10:27

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.

    • Bearbeitet Kruzgoth Montag, 23. Juli 2018 12:07 Lösung gefunden
    • Als Antwort markiert Kruzgoth Montag, 23. Juli 2018 12:08
    Montag, 23. Juli 2018 12:03

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]

    Montag, 23. Juli 2018 11:45
  • 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.

    • Bearbeitet Kruzgoth Montag, 23. Juli 2018 12:07 Lösung gefunden
    • Als Antwort markiert Kruzgoth Montag, 23. Juli 2018 12:08
    Montag, 23. Juli 2018 12:03