SQL vs XML用于数据传输

时间:2013-03-26 19:35:30

标签: mysql xml data-transfer

我是Web服务和Web API的新手。我注意到大多数公司提供基于XML或JSON的连接,它基本上从数据库中获取数据并将其编码为他们选择的格式。我的问题是,为什么我看不到有人提供某种SQL连接?

起初我认为这是安全的。但是使用MySQL,您可以限制用户一直访问特定列。您可以允许它们仅查看或仅插入。您可以创建视图和存储过程来执行连接或掩盖您真正的后端结构。您可以使用ssl连接来正确编码传输的数据。所以我认为唯一的区别就是风格。在我看来,人们宁愿让我写

$conn->getWidgetAttr('widgetName');

而不是

SELECT widgetName FROM widgets;

有人能告诉我我在这里缺少什么吗?

1 个答案:

答案 0 :(得分:4)

  1. 配置复杂性。对于所有可能的用例,很难为所有用户配置权限。
  2. 安全。公开数据库连接和查询并不安全,并且提供了sql注入/利用攻击的广泛可能性。
  3. 合同稳定性。隐藏有关存储在数据库中的项目如何允许您更改底层存储而不破坏现有客户端的实现细节。例如,您可以决定使用mongodb替换sql server。
  4. 防火墙问题。 Http连接广泛可用,端口80对于大多数使用web api的操作是开放的,而暴露sql server端口(默认为1433)可能会增加额外的部署成本。