1

私はWebサービスとWebAPIの世界に不慣れです。ほとんどの企業が、基本的にデータベースからデータを取得し、選択した形式にエンコードするXMLまたはJSONベースの接続を提供していることに気付きました。私の質問は、ある種のSQL接続を提供している人がいないのはなぜですか?

最初はセキュリティだと思いました。ただし、MySQLを使用すると、ユーザーのアクセスを特定の列まで制限できます。表示のみ、または挿入のみを許可できます。ビューとストアドプロシージャを作成して、結合を実行したり、真のバックエンド構造を覆ったりすることができます。ssl接続を使用して、送信されたデータを適切にエンコードできます。だから本当に私は唯一の違いはスタイルだと思います。私には、人々はむしろ私に書いてもらいたいようです

$conn->getWidgetAttr('widgetName');

それよりも

SELECT widgetName FROM widgets;

誰かが私がここで欠けているものを教えてもらえますか?

4

1 に答える 1

4
  1. 構成の複雑さ。考えられるすべてのユースケースで、すべてのユーザーのアクセス許可を構成することは困難です。
  2. 安全。データベース接続とクエリの公開は安全ではなく、SQLインジェクション/エクスプロイト攻撃の可能性が高くなります。
  3. 契約の安定性。データベースに格納されているアイテムの実装の詳細を非表示にすると、既存のクライアントを壊すことなく、基になるストレージを変更できます。たとえば、ある時点で、SQLサーバーをmongodbに置き換えることを決定できます。
  4. ファイアウォールの問題。Http接続は広く利用可能であり、ポート80はWeb APIを使用したほとんどの操作で開いていますが、SQLサーバーポート(デフォルトは1433)を公開すると、追加の展開コストがかかる場合があります。
于 2013-03-26T19:49:18.487 に答える