Database 允许用户直接连接到数据库的API

Database 允许用户直接连接到数据库的API,database,security,api,Database,Security,Api,我使用过很多API,但这通常都不是一件容易的任务。处理POST请求然后尝试处理XML是一件痛苦的事情。我想,如果用户和开发人员都能直接与数据库交互,这不是更容易吗 是否可以创建API用户将连接到的用户,然后分配特定的权限?例如,他们只能从特定的表和列中进行选择。基本上,这样他们就不会做任何恶意的事情或者任何你不想做的事情 我意识到不仅仅是获取数据还有很多,因此会有一定的局限性,但是当涉及到API使用时,选择可能是最重要的 这是一个实际的想法吗?安全吗?我真的不确定,我在这里离专业人士最远,这只是

我使用过很多API,但这通常都不是一件容易的任务。处理POST请求然后尝试处理XML是一件痛苦的事情。我想,如果用户和开发人员都能直接与数据库交互,这不是更容易吗

是否可以创建API用户将连接到的用户,然后分配特定的权限?例如,他们只能从特定的表和列中进行选择。基本上,这样他们就不会做任何恶意的事情或者任何你不想做的事情

我意识到不仅仅是获取数据还有很多,因此会有一定的局限性,但是当涉及到API使用时,选择可能是最重要的


这是一个实际的想法吗?安全吗?我真的不确定,我在这里离专业人士最远,这只是一个想法。

是的,几乎所有的数据库都允许您创建用户,只需选择访问特定模式。我用它为高级Excel用户提供ODBC访问,而不用担心他们会把事情搞砸。非常节省地使用——这总是会造成维护困难,因为人们最终会以您不打算(或计划替换)的方式使用您的架构的一部分。

是的,几乎所有数据库都允许您创建仅对特定架构具有选择性访问权限的用户。我用它为高级Excel用户提供ODBC访问,而不用担心他们会把事情搞砸。非常节省地使用——这总是会造成维护困难,因为人们最终会以您不打算(或计划替换)的方式使用您的架构的一部分。

您可以设置一个RESTful API,它可以直接与mySQL数据库进行通信,如。它可以为您完成所有繁琐的工作,但您可以完全自由地实现新的功能或限制。

您可以设置一个RESTful API,直接与mySQL数据库通信,如。它可以为您完成所有脏活,但您可以完全自由地实现新功能或限制。

您可以连接到任何数据库的访问,例如Oracle


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

您可以将访问连接到任何数据库,例如Oracle


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

您所说的API到底是什么意思,您指的是哪种API

这听起来更像是一个设计决策。如果我理解正确,您希望与应用程序的用户层和数据库/持久性层交互。总的来说,这是个坏主意。首先,它确实减少了代码重用。在您的开发阶段,这可能不是一个问题,但是学习最佳实践是一个好主意。我通常遵循的层次是:

模型视图控制器 服务 坚持不懈 模型/域


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

你所说的API到底是什么意思,你说的是哪种API

这听起来更像是一个设计决策。如果我理解正确,您希望与应用程序的用户层和数据库/持久性层交互。总的来说,这是个坏主意。首先,它确实减少了代码重用。在您的开发阶段,这可能不是一个问题,但是学习最佳实践是一个好主意。我通常遵循的层次是:

模型视图控制器 服务 坚持不懈 模型/域


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

是的,您可以在任何客户机/服务器数据库系统上执行此操作(如果是数据库服务器,则必须有一种连接方式。)

由于许多问题,这项工作做得不多

  • 维修很难
  • 安全性更差
  • 总的来说没有好处

基本上,它会引起头痛,并不能提供任何有益的东西

是的,您可以在任何客户机/服务器数据库系统上执行此操作(如果是数据库服务器,则必须有一种连接方式。)

由于许多问题,这项工作做得不多

  • 维修很难
  • 安全性更差
  • 总的来说没有好处

基本上,它会引起头痛,并不能提供任何有益的东西

两个最重要的反问题是:

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

2) 您的用户真正需要执行什么样的数据库操作?如果“选择”真的足够了,那么是的,通过“只读”web服务公开数据可能是有意义的。但是,如果您想要更新、删除、进行存储过程调用等等,那么您将需要SQL之类的东西,并且很难为此构建web服务API


如果反问题1的答案是“我可以选择”,那么看看CouchDB,它已经为它构建了RESTful API()

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

2) 您的用户真正需要执行什么样的数据库操作?如果“选择”真的足够了,那么是的,通过“只读”web服务公开数据可能是有意义的。但是,如果您想要更新、删除、进行存储过程调用等等,那么您将需要SQL之类的东西,并且很难为此构建web服务API


如果反问题1的答案是“我可以选择”,那么看看CouchDB,它已经为它构建了一个RESTful API()。

有grand daddy ODBC,还有一些特定于语言的接口,如JDBC for Java。无论如何,通过互联网直接访问数据库绝对是个坏主意