Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果手动更改,则监视数据_Mysql_Sql_Sql Server_Database - Fatal编程技术网

Mysql 如果手动更改,则监视数据

Mysql 如果手动更改,则监视数据,mysql,sql,sql-server,database,Mysql,Sql,Sql Server,Database,如果SQL Server中的数据不是通过系统手动更改的,是否有任何工具可以监视该数据 我想检查我们的数据库管理员是否手动编辑了任何记录您可以创建触发器 插入、删除或更新记录时将触发触发器,并且应使用msdb.dbo.sp_send_dbmail立即向指定的电子邮件收件人发送电子邮件警报: CREATE TRIGGER t_Pers ON Person.Person AFTER INSERT, UPDATE, DELETE AS EXEC msdb.dbo.sp_send_dbmai

如果SQL Server中的数据不是通过系统手动更改的,是否有任何工具可以监视该数据


我想检查我们的数据库管理员是否手动编辑了任何记录

您可以创建触发器

插入、删除或更新记录时将触发触发器,并且应使用msdb.dbo.sp_send_dbmail立即向指定的电子邮件收件人发送电子邮件警报:

CREATE TRIGGER t_Pers 
ON Person.Person 
AFTER INSERT, UPDATE, DELETE 
AS 
   EXEC msdb.dbo.sp_send_dbmail 
                        @profile_name = 'ApexSQLProfile', 
                        @recipients = 'marko.radakovic@apexsql.com' , 
                        @body = 'Data in AdventureWorks2012 is changed', 
                        @subject = 'Your records have been changed' 
GO

您可以通过多种方式实现这一点,但实际上应该在MSSQL服务器或mysql服务器上设置一个功能。在第一种情况下,您应该切换特定数据库的审核。如果您以前没有这样做,您可以跟踪事务日志: 但这很费时,也不能带来结论性的结果。 对于MySQL,有一个使用审计api的插件,由MySQL从5.5.3版提供。已经开发了很多插件,Oracle提供了一个带有企业解决方案的插件,percona提供了一个,我相信还有其他插件。 在这种情况下,您还可以挖掘bin日志,如果设置了,则分析sql查询日志,如果设置了,则分析慢速查询日志。但是再一次——这很费时,实际上你可能无法找到100%的证据。 只有审计才能提供确凿的证据,但必须在事前而不是事后建立。
但你也必须知道,如果你的db管理员知道应用程序用户的密码,他可以登录到应用程序服务器,然后他可以使用该应用程序用户登录到数据库,进行更改,除非数据库中设置了应用程序角色,否则很难说这不是一个更改记录的应用程序,只能由应用程序使用。

欢迎使用SO。这是离题的。请阅读:您可以使用更新后触发器。@Ben即使通过系统ERP系统进行更新,也会触发触发器。我不希望通过表进行任何更新。通过系统进行更新是必要的allowed@B001很抱歉MS SQLserver@MaciejJureczko很抱歉,我认为我的帖子很清晰谢谢,但我知道,在这两种情况下,触发器都会通过表格手动触发,或者通过ERP正式触发。非常感谢您提供了完整的answear。。实际上,我们的DBA不认识任何用户&39;s的密码,所以如果我想检查一个巨大的数据库,那将是浪费时间!