2010-01-10 48 views
0

我使用过很多API,它通常不是一件容易的事。关于POST请求,然后试图处理XML是一个痛苦。我认为如果用户和开发人员只是直接与数据库进行交互,会不会更容易。一个允许用户直接连接到数据库的API

是否有可能创建一个用户API用户将连接到然后分配某些privilages?例如,他们只能从特定的表格和列中进行选择。基本上,这样他们就不会做任何恶意或任何你不想要的东西。

我意识到,除了仅仅获取数据之外,还有很多其他因素,所以这里会有一定的局限性,但选择可能是API使用最多的问题。

这是一个实用的想法吗?它安全吗?我真的不确定,我是来自这里的专业人员最远的事情,这只是一个想法。

+1

还有盛大的daddy ODBC,并且有特定语言的接口,例如Java的JDBC。无论哪种方式,通过互联网直接访问数据库绝对是一个坏主意。 – 2010-01-10 22:09:19

回答

2

您可以设置一个RESTful API,它可以直接与mySQL数据库对话,如PHPRestSQL。它可以为你做所有肮脏的工作,但你将有充分的自由来实施新的功能或限制。

0

是的,几乎所有的数据库都允许您创建只能选择访问特定模式的用户。我已经使用它来为高级Excel用户提供ODBC访问,而不用担心他们会搞砸任何东西。非常谨慎地使用 - 它总是会造成维护困难,因为人们最终会以您不打算(或计划替换)的方式使用模式的某些部分。

0

您可以将Access连接到任何数据库 - 例如Oracle。

但是,出于安全性和数据完整性原因,这不一定是个好主意。

1

你是什么意思,完全由API,你在说什么API?

这听起来更像是一个设计决定。如果我理解正确,您希望与应用程序的用户层和数据库/持久层进行交互。一般来说,这是一个糟糕的主意。首先它确实减少了代码重用。在开发过程中,您可能不会担心这一点,但学习最佳实践是一个不错的主意。我通常遵循层:

模型 - 视图 - 控制器 服务 持久性 型号/域

你可以在这里看到MVC(用户界面)从模型至少两层分离。这通常更安全,并促进代码重用。

1

是的,你可以与任何客户端/服务器数据库系统做到这一点(如果它是一个数据库服务器必须有连接到它的方式。)

这是不是因为一些问题做了很多工作。

  • 维护是很难
  • 安全更糟糕的是
  • 一般并无裨益。

基本上它引起头痛,并没有真正提供任何好的东西。

1

两个最重要的反问题是:

1)是基础数据库已经确定,或者你可以选择一个?

2)用户需要执行哪些数据库操作?如果“选择”确实够用,那么可以通过“只读”Web服务公开数据。但是,如果你想更新,删除,存储过程调用等,那么你将需要像SQL这样的东西,并且很难为此构建一个Web服务API。

如果反问题1的答案是“我可以选择”,那么请查看CouchDB,该CouchDB已经为其构建了一个RESTful API(http://wiki.apache.org/couchdb/HTTP_REST_AP)。

相关问题