2010-10-04 187 views
0

是否可以防止允許篡改數據庫的人員以外的其他人員。我想我在問是否有數據庫登錄以外的方法妨礙人們篡改數據庫?我知道特權以及如何訪問特定用戶的某些數據庫部分。我正在尋找更多的東西,以防有人設法確定正確的用戶名/密碼組合。防止數據庫篡改

我正在使用此數據庫與Web服務器結合使用。數據庫服務器和Web服務器位於不同的機器上,位於硬件防火牆之後。 Web服務器只能通過防火牆訪問,而數據庫服務器只能通過Web服務器訪問。

我想我所要求的是創建某種用戶控件來創建會話ID或類似的東西,以便只有當該用戶名登錄時存儲的id才能運行該查詢。

+1

賽門鐵克有一門課程。 http://www.symantec.com/connect/articles/securing-mysql-step-step – bh88 2010-10-04 03:26:13

+0

這是一個很好的閱讀,謝謝 – 2010-10-04 03:34:37

+0

確實,這是非常有益的,謝謝。 – 2010-10-04 16:09:01

回答

2

是的,你有一些控制設置哪個用戶有什麼特權。當然,如果他們獲得了root用戶密碼,那麼我認爲你可能會運氣不好。

查看此鏈接瞭解有關授予/撤銷權限的信息。 http://beginner-sql-tutorial.com/sql-grant-revoke-privileges-roles.htm

授予語法(從鏈接)

GRANT privilege_name 
ON object_name 
TO {user_name |PUBLIC |role_name} 
[WITH GRANT OPTION]; 

撤銷語法(從鏈接)

REVOKE privilege_name 
ON object_name 
FROM {user_name |PUBLIC |role_name} 

更多:布賴恩添加評論,賽門鐵克有一個很好的指導,確保MySQL的。我只是想補充一點,它還包含很多非常有用的信息,http://www.symantec.com/connect/articles/securing-mysql-step-step

+0

謝謝你。我目前正在爲不同的用戶進行每次閱讀和寫作。我一直在尋找更多的東西。 – 2010-10-04 16:10:55

0

防止人們篡改它的最好方法是將其放在只能從其他需要的機器上訪問的服務器上與數據庫(如Web服務器)交談

如果可能,網絡服務器應該沒有任何管理訪問權限,除非通過本地網絡或VPN。

如果成本問題(您只有一臺服務器或共享主機)如果您可以通過SSL連接運行MySQL,那麼至少密碼不會以明文形式發送。

+0

即使你有一個盒子,你仍然應該設置多個虛擬服務器來分離一些東西。 – 2010-10-04 15:53:31

0

更新您的操作系統以獲取任何可能導致特權升級或遠程代碼執行的安全修復程序,並使用防火牆阻止您需要的端口旁邊的每個端口。如果您的數據庫需要遠程訪問,則可以使用SSH隧道。文件系統訪問或shell訪問可能是篡改數據庫的一種方式。

使用具有相應權限的多個憑證。對不需要寫入權限的登錄使用只讀訪問權限。

請解釋一下你的環境,你的情況和典型用法,這將有助於查明潛在的缺陷。

+0

我會用所有可能的細節更新問題。 – 2010-10-04 15:56:37

0

閱讀SQL注入攻擊並確保您的代碼不會允許它們。

如果您不使用動態SQl並使用存儲的proc,則可以將權限放在proc級別,用戶只能通過存儲過程執行操作,因爲您可以防止直接插入,更新和刪除表格。這有助於防止欺詐,因爲除開發人員編寫的內容外,用戶無法做任何事情。因此,沒有人可以刪除整個表格等。除了選擇權限以外,不要給開發人員生產權限。加密備份。記住,員工對於數據的威脅與外部攻擊一樣大或更大。

在某些數據庫中,不需要sys管理員的密碼。總是使用一個。不要把它交給任何超過你必須的人。