Netwrix Auditor for SQL Server
- 打开 Netwrix Auditor,然后依次导航到 Reports -> Predefined -> SQL Server — State-in-Time -> SQL Server Databases。
- 单击 查看 以查看您的报表:
原生审计
- 启动 Microsoft SQL Server Management Studio (MSSMS)。
- 在 文件 菜单中,单击 连接对象资源管理器。填写 连接到服务器 对话框:
- 在 服务器类型 下拉列表中选择 Database Engine。
- 在 服务器名称 文本框中,输入 SQL 群集服务器的名称。
- 在 身份验证 下拉列表中选择 SQL Server Authentication 方法 并指定你的凭据。如果你不想每次连接到服务器时都重新输入密码,请勾选 Remember password。
- 点击 Connect。
- 连接成功后,点击 New Query,并将以下脚本粘贴到查询字段中:
SELECT
sys.databases.name as 'Database Name',
sys.databases.user_access_desc as "Restrict Access",
sys.databases.state_desc as 'State',
sys.databases.is_read_only as 'Read Only',
sys.databases.is_auto_shrink_on 'Auto Shrink Enabled',
sys.databases.is_encrypted as 'Encrypted',
bckup.last_backup as 'Last Database Backup',
files.data_file as 'Database File Path',
files.log_file as 'Log File Path',
files.db_size as 'Database Size MB',
files.log_size as 'Log File Size MB',
sys.databases.database_id as 'Database ID'
FROM sys.databases
LEFT JOIN (
SELECT msdb.dbo.backupset.database_name, MAX(msdb.dbo.backupset.backup_finish_date) AS last_backup
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE msdb..backupset.type = 'D'
GROUP BY msdb.dbo.backupset.database_name
) bckup on bckup.database_name = sys.databases.name
LEFT JOIN (
SELECT
mdf.database_id,
mdf.name,
mdf.physical_name as data_file,
ldf.physical_name as log_file,
db_size = CAST((mdf.size * 8.0)/1024 AS DECIMAL(8,2)),
log_size = CAST((ldf.size * 8.0 / 1024) AS DECIMAL(8,2))
FROM (SELECT * FROM sys.master_files WHERE type_desc = 'ROWS' ) mdf
JOIN (SELECT * FROM sys.master_files WHERE type_desc = 'LOG' ) ldf
ON mdf.database_id = ldf.database_id
) files
ON files.database_id = sys.databases.database_id
ORDER BY 'Database Name'
- 点击 Execute(或按下 F5 键)。
- 查看查询结果中的数据库列表及其属性:
只需单击即可查看 SQL Server 数据库属性。
收集数据库属性(也称为数据库选项)是常规的数据库管理任务。它对于确保数据库始终符合默认基线设置至关重要,同时也需要监测其关键“生命体征”,以保障良好的性能和可用性。
使用 SQL Server Management Studio,您可以通过图形界面或自定义查询来获取有关 SQL Server 数据库属性的信息。然而,无论您选择哪种方式,整个流程并不总是像您可能希望的那样易用。例如,使用 GUI 工具时,您无法轻松获取您真正需要的那部分信息,并且一次只能查看一个数据库。通过诸如 sp_helpdb 之类的 Transact-SQL 命令时,所有 SQL 数据库参数彼此关联,而不是单独列出。当查询系统表时,您通常需要联接多个表才能得到所需的结果,然后对结果进行转换(将不同的数据类型转换为所需格式)以便理解它们。此外,您可以通过查询 sys.databases 来获取各种数据库选项(例如恢复模型、自动关闭、自动收缩、兼容性级别、排序规则名称以及快照隔离),但如果数据库处于 OFFLINE 状态且您拥有的权限有限,就不会看到任何数据——用户至少必须具备 ALTER ANY DATABASE 的服务器级权限,或在 master 数据库中具备 CREATE DATABASE 权限。
SQL Server 确实内置了 DATABASEPROPERTYEX 函数,可为一个或全部数据库返回特定信息,但要获取数据库文件的物理大小,您必须分别查询每一个数据库。简而言之,使用原生工具理解 SQL Server 数据库属性的配置可能相当耗时,并且需要较高的专业知识。
使用 Netwrix Auditor for SQL Server,您可以一键获取数据库选项的清晰摘要。此外,您还可以订阅报告,并按照您选择的计划将其自动发送到您的收件箱。您甚至可以轻松设置配置变更提醒,这样当需要采取措施以防止停机或其他可能影响业务的问题时,您会第一时间知道。
分享到