2
我了解以下内容:SQL服务器 - 获取有关通过执行获取数据库名称的所有数据库和文件
select *
from master..sysdatabases
order by Name
我希望能够做的是恢复所有有关每个数据库服务器上的文件。要获得每个数据库的文件列表我必须做类似下面的东西:
use [database]
select *
from sysfiles
不幸的是,我需要使用前缀sysfiles
只能从我使用的数据库拉。
理想情况下,我希望能够将此视图包装到可通过odbc数据库监视项目调用并挂接到zabbix的视图中。
比方说,我有3个数据库:
DB1
DB2
DB3
我希望有一个观点,即会显示
Database Name FileName
--------------------------------
DB1 c:\mnt\db1.mdf
DB1 c:\mnt\db1.ldf
DB2 c:\mnt\db2.mdf
DB2 c:\mnt\db2.ldf
DB3 d:\mnt\db3.mdf
DB3 d:\mnt\db3.ldf
这太棒了!问题是,需要什么安全级别?如果我运行在拥有完整SA访问权限的沙箱中,我可以获得所有内容,但是在我们的开发环境中,这种情况更加锁定,因此我得不到任何东西,因此我猜这是与我正在使用的帐户相关的权限问题。 – whoisearth
证实了这个问题是用sys.master_files表我有权访问sys.databases。 – whoisearth
这是“教一个人钓鱼”的日子。 sys.master文件的文档(https://msdn.microsoft.com/en-us/library/ms186782.aspx)说:“查看相应行所需的最低权限是CREATE DATABASE,ALTER ANY DATABASE或查看任何定义。“ –