使用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审计记录企业系统运行情况是一个重要的安全策略,它可以帮助企业保护自己免受外部干扰,同时促进系统的正常运行。


数据运维技术 » 使用SQL Server审记记录企业系统运行情况(sqlserver审记)