2

我想模擬我使用MySQL開發的webapp上的行級安全性。Webapp:Mysql:行級安全性。 PRO /利弊?更好的方法來做到這一點?

使用此方法:使用所需的表創建數據庫,其中與所有用戶有關的數據將通過適當索引表中的列進行存儲。

根據用戶標識爲特定用戶創建mysql'視圖'。

爲了實現行級別的安全性,我還必須爲每個用戶創建一個mysql帳戶,併爲這些視圖設置「grant」權限。

對於Web界面,將使用基於PHP的MVC框架。

但是,根據我的研究:

1] Having separate mysql account per user "make the webapp less secure".
2] Having separate mysql account per user "increases the disk I/O".

問題:
1] How does creating mysql user per webapp user make the webapp less secure?
2] Does the disk I/O increase considerably?
3] Is there a better way to implement row-level-security in MySQL?
4] What are the pros/cons of implementing row-level-security by the above method?

爲什麼我在查看行級安全?
I need row level security because there are rows which will be shared between multiple users & have 1 or 2 owners to it. Only these owners can delete/modify them.

+3

而不是嘲笑我,你能建議我能做什麼/讀嗎? – ThinkingMonkey

+0

這不是在嘲笑你,但我很抱歉,如果它看起來像那樣。我只是想知道爲什麼你甚至試圖這樣做。爲什麼你甚至需要「行級安全性」,這樣做的理由是什麼,以及通過這樣做有什麼預防?至於磁盤I/O,創建用戶,視圖等並不會影響磁盤I/O,因此您不必擔心這一點(除非每天都有成千上萬的新用戶,這會累加到磁盤I上/ O處理視圖時)。 –

+0

我需要'行級安全性',因爲有多行將被多個用戶共享,並有1或2個所有者。只有這些所有者才能刪除/修改它們。 ***如果你知道我可以在哪裏瞭解更好的方法,那麼建議他們。*** – ThinkingMonkey

回答

0

我的意見:

1] How does creating mysql user per webapp user make the webapp less secure?

有進入你的數據庫的多個點。這是從具有users表中,用戶的信息存儲在,然後用適當限制MySQL賬戶不同,它們都使用(如您的Web應用程序配置文件的一部分)

2] Does the disk I/O increase considerably?

不知道如何正確地回答這個問題,因爲你可能讀過這篇文章是關於開發者/數據庫管理員在/ etc誰directly訪問數據庫..

3] Is there a better way to implement row-level-security in MySQL?

與SQL函數和爭奪使用多個SQL帳戶ws在你的MySQL實現中,也許你可以試着控制訪問,而不是從SQL帳戶級別訪問,而是通過表數據訪問用戶?

4] What are the pros/cons of implementing row-level-security by the above method?

一兩件事,是具有多個帳戶的後果是賬戶的維護。

使用視圖和函數和存儲過程將是一種很好的方法來幫助控制您允許訪問者看到的數據量或種類,所以這是一個專業人士。

再一次,這些只是我的意見;我可能誤解了一些部分,並且我可能與其他人錯誤。:)

+0

感謝您的回覆: 不知道如何正確回答這個問題,因爲您可能已經閱讀的文章是關於開發人員/數據庫管理員/等人直接訪問您的數據庫使用的多個SQL帳戶。 感謝您指出此出.. 該文章是爲了使用觸發器和自動日誌記錄。 ThinkingMonkey

+0

[鏈接](http://dba.stackexchange.com/a/3348)使用觸發器時磁盤I/O會增加。 你的第一和第三點是我最初的實施想法。 有沒有我可以參考的參考資料? P.S.我意外地敲入輸入而不是先前輸入 – ThinkingMonkey

0

問題3的答案:

一個簡單的方法可能是使用單獨的表。在性能方面也可能更好。爲什麼要將數據保存在同一個表中是否有原因?據我瞭解,用戶之間不共享行。

+0

行將在用戶之間共享。這就是我查看行級安全性的原因。我應該早些提到這一點。 而且.. 更多表格, 1]更多我的數據庫表的大小。 2]更多I/O。 3]我的數據庫轉儲的大小越大。 – ThinkingMonkey

相關問題