程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 淺析MySQL數據庫授權原則

淺析MySQL數據庫授權原則

編輯:MySQL綜合教程

MySQL數據庫相信很多人都用過,MySQL數據庫受到廣大用戶的青睐,但是可能有很多人對MySQL數據庫授權不是很了解,接下來,本文就為大家解析MySQL數據庫授權原則。

服務器重新啟動的情況

當mysqld啟動時,所有的授權表內容被讀進存儲器並且從那時開始生效。

被服務器立即應用的情況

用GRANT、REVOKE或SET PASSWORD對授權表施行的修改會立即被服務器注意到。

直接修改授權表的情況

如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執行一個FLUSH PRIVILEGES語句或運行mysqladmin flush-privileges告訴服務器再裝載授權表,否則你的改變將不生效,除非你重啟服務器。

對現有客戶連接的影響情況

當服務器注意到授權表被改變了時,現存的客戶連接有如下影響:

授權原則

無論怎麼小心都難免在給用戶授權時留有漏洞,希望下面的內容能給你一些幫助,你一般應該遵守這些規則。

只有root用戶擁有授權表的改寫權

不要把授權表的改寫權授予除root用戶之外的其它用戶(當然,如果你可以用另一個用戶代替root用戶進行管理,以增加安全性)。因為這樣,用戶可以通過改寫授權表而推翻現有的權限。產生安全漏洞。

一般情況下,你可能不會犯這個錯誤,但是在安裝新的分發, 初始授權表之後。這個漏洞是存在的,如果你不了解這時授權表的內容你可能會犯錯誤。

在Unix(Linux)上,在按照手冊的指令安裝好MySQL後,你必須運行mysql_install_db腳本建立包含授權表的mysql數據庫和初始權限。在Windows上,運行分發中的Setup程序初始化數據目錄和mysql數據庫。假定服務器也在運行。

當你第一次在機器上安裝MySQL時,mysql數據庫中的授權表是這樣初始化的:

一般地,建議你刪除匿名用戶記錄:

mysql> DELETE FROM user WHERE User="";

更進一步,同時刪除其他授權表中的任何匿名用戶,有User列的表有db、tables_priv和columns_priv。

另外要給root用戶設置密碼。

關於用戶、口令及主機的設置

對所有MySQL用戶使用口令。

記住,如果other_user沒有口令,任何人能簡單地用mysql -u other_user db_name作為任何其它的人登錄。對客戶機/服務器應用程序,客戶可以指定任何用戶名是常見的做法。在你運行它以前,你可以通過編輯mysql_install_db腳本改變所有用戶的口令,或僅僅MySQL root的口令,象這樣:

shell> mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('new_password')

-> WHERE user='root';

mysql> FLUSH PRIVILEGES;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved