本篇內容介紹了“MySQL數據庫授權的原則是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
服務器重新啟動的情況
當mysqld啟動時,所有的授權表內容被讀進存儲器并且從那時開始生效。
被服務器立即應用的情況
用GRANT、REVOKE或SETPASSWORD對授權表施行的修改會立即被服務器注意到。
直接修改授權表的情況
如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執行一個FLUSHPRIVILEGES語句或運行mysqladminflush-privileges告訴服務器再裝載授權表,否則你的改變將不生效,除非你重啟服務器。
對現有客戶連接的影響情況
當服務器注意到授權表被改變了時,現存的客戶連接有如下影響:
表和列權限在客戶的下一次請求時生效。數據庫權限改變在下一個USEdb_name命令生效。全局權限的改變和口令改變在下一次客戶連接時生效。
授權原則
無論怎么小心都難免在給用戶授權時留有漏洞,希望下面的內容能給你一些幫助,你一般應該遵守這些規則。
只有root用戶擁有授權表的改寫權
不要把授權表的改寫權授予除root用戶之外的其它用戶(當然,如果你可以用另一個用戶代替root用戶進行管理,以增加安全性)。因為這樣,用戶可以通過改寫授權表而推翻現有的權限。產生安全漏洞。
一般情況下,你可能不會犯這個錯誤,但是在安裝新的分發,初始授權表之后。這個漏洞是存在的,如果你不了解這時授權表的內容你可能會犯錯誤。
MySQL數據庫授權有什么原則
在Unix(Linux)上,在按照手冊的指令安裝好MySQL后,你必須運行mysql_install_db腳本建立包含授權表的mysql數據庫和初始權限。在Windows上,運行分發中的Setup程序初始化數據目錄和mysql數據庫。假定服務器也在運行。
當你第一次在機器上安裝MySQL時,mysql數據庫中的授權表是這樣初始化的:
你可以從本地主機(localhost)上以root連接而不指定口令。root用戶擁有所有權限(包括管理權限)并可做任何事情。(順便說明,MySQL超級用戶與Unix超級用戶有相同的名字,他們彼此毫無關系。)匿名訪問被授予用戶可從本地連接名為test和任何名字以test_開始的數據庫。匿名用戶可對數據庫做任何事情,但無管理權限。
一般地,建議你刪除匿名用戶記錄:
mysql>DELETEFROMuserWHEREUser="";
更進一步,同時刪除其他授權表中的任何匿名用戶,有User列的表有db、tables_priv和columns_priv。
另外要給root用戶設置密碼。
關于用戶、口令及主機的設置
對所有MySQL用戶使用口令。
記住,如果other_user沒有口令,任何人能簡單地用mysql-uother_userdb_name作為任何其它的人登錄。對客戶機/服務器應用程序,客戶可以指定任何用戶名是常見的做法。在你運行它以前,你可以通過編輯mysql_install_db腳本改變所有用戶的口令,或僅僅MySQLroot的口令,象這樣:
shell>mysql-urootmysql
mysql>UPDATEuserSETPassword=PASSWORD('new_password')
->WHEREuser='root';
mysql>FLUSHPRIVILEGES;
“MySQL數據庫授權的原則是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
網頁題目:MySQL數據庫授權的原則是什么-創新互聯
文章來源:http://m.newbst.com/article46/dehceg.html
成都網站建設公司_創新互聯,為您提供網站維護、動態網站、外貿網站建設、微信公眾號、網站策劃、品牌網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯