我们希望仅通过我们自己的应用程序允许用户进行数据库访问 (Oracle) - 让我们将其称为“ourTool.exe”,安装在用户计算机本地。目前,用户每次启动“ourTool”时都必须提供用户名/密码。提供的密码密码被解密,我们使用用户名/解密密码最终登录到 Oracle DB。这种方法可以防止用户使用第三方工具(SQLplus、Excel、Access 等)直接访问我们的数据库,并且保证数据库中的所有内容都已使用“ourTool”输入/编辑。
现在,我们的一位客户希望允许其用户“单点登录”(使用智能卡/Oracle PKI)。这样,用户将能够连接到我们的数据库,而无需在每次启动“ourTool”时提供任何密码。但对于 SQLplus、Excel、Access 等具有潜在危险的工具来说也是如此。
有办法防止这种情况吗?在这种情况下,我们如何确保数据库中的每条记录仅使用“ourTool”创建/编辑/删除?
由于它是您的应用程序并且您可以控制源,因此您可以使用受密码保护的数据库角色或从 ourTool.exe 启用的安全应用程序角色。 (看http://www.oracle.com/technology/obe/obe10gdb/security/approles/approles.htm ).
例如,对于受密码保护的数据库角色,初始连接将仅具有 CREATE SESSION 权限,然后 ourTool.exe 将使用只有您知道的密码发出 SET ROLE。任何其他应用程序都没有设置角色的信息。显然,在此配置中,权限仅授予角色,而不直接授予用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)