使用SQL Server审记记录企业系统运行情况(sqlserver审记)
随着公司的规模和范围的日益扩大,审计备份记录的重要性也越来越显著,因为这可以帮助公司确保数据安全、协调合规性并保护公司不受干扰。此外,审计记录可以帮助促进系统的正常运行,以及对任何未知状态的更新和处理。
SQL Server提供了一些审计功能来收集、保存和检索各种审计信息。它可以收集关于访问批处理文件、SQL语句、数据库和注册表等信息,并将其写入安全日志中。通过使用存储过程和审计报表,企业可以很容易地查看这些日志。
首先,可以使用动态管理视图实施审计。
例如,可以使用安全工具 sys.dm_audit_status来检查审计是否已正确启用。
另外,可以通过下面的代码来检查有权访问和数据库函数的审计:
USE master
GO
SELECT
DEL.name AS database_name
,AUDITS.name AS audit_name
,Object_Name(DEL.object_id) AS object_name
,SCHEMA_NAME(DEL.principal_id) AS schema_name
,DPD.permission_name
FROM sys.database_permissions DPD
INNER JOIN sys.databases DEL
ON DPD.major_id = DEL.database_id
INNER JOIN sys.database_audit_specifications AUDITS
ON AUDITS.object_id = DPD.major_id
此外,可以使用下面的存储过程来删除不再使用的审计项:
USE master
GO
CREATE Procedure RemoveUnusedAuditItems
AS
BEGIN
DECLARE @serverName VARCHAR(255)
DECLARE @dbName VARCHAR(255)
DECLARE @auditName VARCHAR(255)
SELECT @serverName = @@SERVERNAME
DECLARE @jobId INT
SELECT @jobId = job_id
FROM msdb.dbo.sysjobs
WHERE name like ‘db_audit_%@’ + @serverName
IF (@jobId IS NOT NULL)
BEGIN
EXEC msdb.dbo.sp_delete_job @job_id = @jobId , @delete_unused_schedule = 1
END
DECLARE sql_cursor CURSOR FOR
SELECT del.name AS DatabaseName, del.name as DatabaseName,
audits.name as audit_name
FROM sys.databases DEL
INNER JOIN sys.database_audit_specifications AUDITS
ON AUDITS.object_id = DEL.database_id
OPEN sql_cursor
FETCH NEXT FROM sql_cursor INTO @dbName ,@auditName
WHILE @@fetch_status=0
BEGIN
EXEC sp_control_db_audit_specification
@dbName, @auditName , ‘DROP’
FETCH NEXT FROM sql_cursor INTO @dbName , @auditName
End
CLOSE sql_cursor
DEALLOCATE sql_cursor
END
GO
最后,可以使用报表分析审计信息,可以帮助企业更好地了解系统运行情况,比如系统访问频率和用户行为等。这种分析可以深入地探究每个审计项的目的,帮助分析人员做出相应的决定,同时确保系统的安全和可靠性。
总之,使用SQL Server审计记录企业系统运行情况是一个重要的安全策略,它可以帮助企业保护自己免受外部干扰,同时促进系统的正常运行。