从 iOS 应用程序连接到 Oracle

问题描述 投票:0回答:5

我知道这个问题已经被问过几次了,但似乎没有明确的答案……我在过去三天或更长时间里一直在寻找这个问题。

似乎有 2 种方法可以从 iOS 应用程序连接到 Oracle 数据库:

  1. ODBC 客户端 我需要使用 gcj for ARM 编译 ODBC(哪个 ODBC?)。我认为这是一条艰难的道路,虽然有错误,但只要付出相当大的努力就有可能实现。

  2. 使用网络服务 从应用程序连接到 Web 服务,从 Web 服务连接到 Oracle DB。

这两种方法可用还是其他方法?

关于这两种方法的几个问题: 一个。哪个更安全? b.我公司的安全部门会反对上述任何一项吗? c.哪个性能更好? d.通常使用以上哪一个?

iphone ios oracle-database
5个回答
7
投票

Web 服务就是答案,您不希望人们从移动设备直接连接到数据库。网络服务器将增加一层额外的安全性以及处理并发请求的能力,而不会直接给数据库带来压力

a.哪个更安全? 如上所述的网络服务

b.我公司的安全部门会反对上述任何一项吗? 是的,安全部门会坚持不打开 oracle 端口直接连接,除非他们已经打开了。

c.哪个性能更好? Web服务,在Web服务器中设置正确的缓存策略可以将资源节省到数据库。

d。通常使用以上哪一项? Web 服务,因为它们在安全性和性能方面为您提供了巨大的优势,不仅如此,Web 服务是可重用的并且可以由许多不同的平台访问,考虑一下将来您可能希望稍后在 Android 设备上为您的应用程序提供服务,Web 服务将为您节省大量的开发时间。

当今市场上的许多顶级应用程序都使用 Web 服务,想一想。

Google 地图是网络服务强大功能的一个很好的例子!


6
投票

直接从应用程序连接到数据库不是一个好主意。如果您创建的帐户除了 SELECT 之外什么也不做,那么它可能是安全的,但还有一些其他事情需要考虑。

为什么要给应用程序增加 Oracle 客户端的负担?

如果您有很多用户,您就必须担心 Oracle 处理大量并发连接。使用 Restful API 请求是无状态的。

如果您决定更改您的架构。您还必须更改您的应用程序。当您将服务置于两者之间时,应用程序不再依赖于架构。


2
投票

ODBC 连接将要求 Oracle 端口向 Internet 开放,但出于安全和性能原因,在绝大多数情况下不允许这样做。即使是这样,或者即使您建立了安全的 VPN,直接数据库访问也需要连接保持打开状态,当移动设备进出网络覆盖范围时,这可能会出现问题。

HTTP 对不可靠网络的容忍度要高得多,并且可以使用 SSL (HTTPS) 进行加密。 HTTP 的问题是数据库不直接支持这种传输,因此大多数人开发专用的 Web 服务。

我从事一个名为 SlashDB 的项目,该项目自动从数据库构建 RESTful API。对于公共 API,您可以将 /db 安装在所谓的 DMZ(两个防火墙之间的网段)中,如此博客文章中所述。

SlashDB 可以配置为允许公共用户限制数据访问,或者您可以定义具有不同数据权限的特定用户。它被设计为无状态服务,这意味着您可以轻松地在负载均衡器和反向 HTTP 代理后面设置多个节点,以实现高可用性 Web 规模部署。

无论您是手动开发 Web 服务还是使用我们的产品,与使用直接客户端/服务器方法相比,您的解决方案都将获得更好的可扩展性、性能和安全性。我什至认为 REST API 应该用于内部企业数据集成解决方案,但这是一个全新的话题。


0
投票

我要重复其他人所说的,Rest API 是正确的出路。不要直接连接到数据库。但是,可能有一种方法可以连接到您的数据库,但我自己从未尝试过。

http://odbcrouter.com/iosvsweb#hn_iOS_Open_Database_Connectivity_SDK


0
投票

我自己多年来一直遇到这个问题,所以我刚刚发布了一个名为 Dodona for Oracle 的 iOS 数据库客户端。目前它只是一个查询工具,但我计划在未来的更新中引入其他 DBMS 功能。新的 OracleNIO Swift 框架以及更广泛的 Swift 并发使这一切成为可能。

© www.soinside.com 2019 - 2024. All rights reserved.