2010-01-10 81 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)。

相關問題