Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Database 对dml语句的oracle模式进行审核_Database_Oracle_Oracle11g_Audit - Fatal编程技术网

Database 对dml语句的oracle模式进行审核

Database 对dml语句的oracle模式进行审核,database,oracle,oracle11g,audit,Database,Oracle,Oracle11g,Audit,我需要确保oracle用户能够从我编写的外部程序执行插入/更新/删除操作 我在谷歌上搜索了一下,想找到我需要的东西。我知道您可以使用自己编写的db触发器。 我现在发现oracle有两个主要的系统(至少我发现了这一点)。 您可以使用细粒度审计。您可以使用审计跟踪 我想在我的情况下,审计线索很接近,但只是不是我要找的。因为我现在需要知道从哪个程序连接到数据库。例如,我需要注册所有正在执行插入/更新/删除操作的连接,并执行来自SQLDeveloper或toad的语句。但所有其他连接都可以通过,而无需审

我需要确保oracle用户能够从我编写的外部程序执行插入/更新/删除操作

我在谷歌上搜索了一下,想找到我需要的东西。我知道您可以使用自己编写的db触发器。 我现在发现oracle有两个主要的系统(至少我发现了这一点)。 您可以使用细粒度审计。您可以使用审计跟踪

我想在我的情况下,审计线索很接近,但只是不是我要找的。因为我现在需要知道从哪个程序连接到数据库。例如,我需要注册所有正在执行插入/更新/删除操作的连接,并执行来自SQLDeveloper或toad的语句。但所有其他连接都可以通过,而无需审计

在日常生活中,我有很多的联系,所以注册所有的东西都太多了

我希望你们中的一位对如何设置有好的想法


关于

您可以使用Oracle的产品:Oracle Audit Vault和数据库防火墙。因为您还想知道连接来自哪个程序,所以需要数据库防火墙。它可以监视通过数据库的所有流量,指定IP地址和启动连接的客户端。您还可以指定是否要审核DML、DDL或其他语句。数据存储在产品的本地数据库中,而不是安全目标(您的数据库)中。看一看,这正是你需要的:

你的标题和标签谈论审核更改。但是,您的描述谈到了“安全”,似乎暗示您希望防止DML,除非它来自应用程序。目标是允许DML并且只审核来自应用程序以外的其他对象的DML吗?或者目标是阻止DML运行?解决方案需要有多安全?由于应用程序名称必须来自客户端计算机上运行的应用程序,因此有能力的用户可以通过操纵其计算机来轻松破解该数据。它不必是安全的。用户可能会进行一些插入/更新和删除,但我们只需要跟踪它们。在过去,有人在更新时出错,并在where子句中忘记了一些内容。如果我们能够跟踪这些变化,我们就可以看到哪些记录可能被感染了。这是纯粹的审计,没有安全性,这就是为什么我只提到审计标记OK。目标是知道运行了什么SQL语句吗?或者更新了哪些行?假设行正在被其他进程修改,并且在用户操作和发现问题之间经过了一段时间,了解SQL语句可能无法告诉您哪些行在执行时符合该语句的条件。用户犯错误和识别问题之间的延迟是什么?您是否可以使用闪回技术而不是审计?我们的目标是确定是哪个用户执行了操作以及sql语句是什么。我们不需要受影响的行。我们可以从sql中转移注意力。并不是每天都有坏事发生(至少我不希望如此:-)。如果不是很久以前的事,我们可以使用闪回来获取正确的数据。但我只需要用户直接在de db中进行更改,而不是我们使用的所有程序,因为它们工作良好,不会出错。非常感谢,这正是我需要的。