MS SQL - minimal nötige Berechtigungen für System-Abfragen
Hi,
welche minimalen Rechte benötigt ein MS-SQL-Benutzer, um innerhalb der Instanz den verfügbaren Festplattenplatz auf den Laufwerken der Instanz abzufragen?
Meine u.g. Abfrage liefert mit einem sysadmin die gewünschten Ergebnisse. Die Abfrage soll aber mit einem dafür dediziertem Konto erfolgen, welche über nur die dafür absolut erforderlichen Rechte verfügen soll.
Ich habe irgendwo gelesen, dass man auch eine Prozedur erstellen könnte, und dieser Prozedur dann diese Rechte erteilen könnte, statt dem Benutzer.
Stimmt das?
Und - wenn ja - wie richtet man sowas ein?
E.
welche minimalen Rechte benötigt ein MS-SQL-Benutzer, um innerhalb der Instanz den verfügbaren Festplattenplatz auf den Laufwerken der Instanz abzufragen?
Meine u.g. Abfrage liefert mit einem sysadmin die gewünschten Ergebnisse. Die Abfrage soll aber mit einem dafür dediziertem Konto erfolgen, welche über nur die dafür absolut erforderlichen Rechte verfügen soll.
SELECT DISTINCT([volume_mount_point]), [available_bytes]
FROM [sys].[master_files] AS [f] CROSS APPLY
[sys].[dm_os_volume_stats]([f].[database_id], [f].[file_id])
GROUP BY [volume_mount_point], [available_bytes]
ORDER BY 1
Ich habe irgendwo gelesen, dass man auch eine Prozedur erstellen könnte, und dieser Prozedur dann diese Rechte erteilen könnte, statt dem Benutzer.
Stimmt das?
Und - wenn ja - wie richtet man sowas ein?
E.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1486734745
Url: https://administrator.de/forum/ms-sql-minimal-noetige-berechtigungen-fuer-system-abfragen-1486734745.html
Ausgedruckt am: 10.04.2025 um 05:04 Uhr
7 Kommentare
Neuester Kommentar
Moin, ich bin nicht mehr so im MS SQL Thema, aber für die Master DB müssten view definition der Meta Daten reichen.
Über die Eigenschaften der gespeicherten Prozedur in der Seite Berechtigungen kannst Du entsprechende Berechtigungen einstellen, hier aber m.W. nur Benutzer. Was passiert denn wenn du das in eine SP verpackst (als SA) und dann eine entsprechende User Berechtigung erteilst?
Gruss
Über die Eigenschaften der gespeicherten Prozedur in der Seite Berechtigungen kannst Du entsprechende Berechtigungen einstellen, hier aber m.W. nur Benutzer. Was passiert denn wenn du das in eine SP verpackst (als SA) und dann eine entsprechende User Berechtigung erteilst?
Gruss
Moin,
ist zwar schon gelöst, aber weil Du nach der Möglichkeit gefragt hast, dem Benutzer nur die Berechtigung auf eine Prozedur zu erteilen:
Statt "with execute as owner" könnte auch ein anderer Benutzer verwendet werden, es wäre dann "with execute as 'Benutzer'".
GRANT VIEW SERVER STATE ist dann überflüssig für den ausführenden Benutzer.
Gruß, Mad Max
ist zwar schon gelöst, aber weil Du nach der Möglichkeit gefragt hast, dem Benutzer nur die Berechtigung auf eine Prozedur zu erteilen:
create procedure testproc with execute as owner as
SELECT DISTINCT([volume_mount_point]), [available_bytes]
FROM [sys].[master_files] AS [f] CROSS APPLY
[sys].[dm_os_volume_stats]([f].[database_id], [f].[file_id])
GROUP BY [volume_mount_point], [available_bytes]
ORDER BY 1
go
grant execute on testproc to testuser
go
Statt "with execute as owner" könnte auch ein anderer Benutzer verwendet werden, es wäre dann "with execute as 'Benutzer'".
GRANT VIEW SERVER STATE ist dann überflüssig für den ausführenden Benutzer.
Gruß, Mad Max