【发布时间】:2020-01-17 02:24:31
【问题描述】:
我正在尝试从我在 SQL Server 中调用的当前数据库中获取总磁盘大小,但正在执行调用的用户没有执行此函数的正确权限。
我正在使用这个脚本
SELECT distinct(volume_mount_point),
total_bytes/1048576/1024 as Size_in_GB,
available_bytes/1048576/1024 as Free_in_GB,
(select ((available_bytes/1048576* 1.0)/(total_bytes/1048576* 1.0) *100)) as FreePercentage
FROM sys.master_files AS f CROSS APPLY
sys.dm_os_volume_stats(f.database_id, f.file_id)
group by volume_mount_point, total_bytes/1048576,
available_bytes/1048576 order by 1
我也尝试过使用xp_cmdshell,但该应用程序将运行的一些服务器由于某些 IT 问题不允许我们使用它。
我使用EXEC master.dbo.xp_fixeddrives 获得了部分结果,但它只给了我可用的可用空间,我仍然需要已用空间。
有没有办法编写出正确的权限以允许我的用户使用sys.dm_os_volume_stats?
【问题讨论】:
-
您好,欢迎来到 SO!您可能想查看Server Fault 以了解与服务器相关的基础架构管理。
标签: sql sql-server database database-administration diskspace