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

具體解讀MySQL中的權限

編輯:MySQL綜合教程

具體解讀MySQL中的權限。本站提示廣大學習愛好者:(具體解讀MySQL中的權限)文章只能為提供參考,不一定能成為您想要的結果。以下是具體解讀MySQL中的權限正文


1、媒介

   許多文章中會說,數據庫的權限按最小權限為准繩,這句話自己沒有錯,然則倒是一句空論。由於最小權限,這個器械太籠統,許多時刻你並弄不清晰詳細他須要哪些權限。 如今許多mysql用著root賬戶在操作,其實不是年夜家不曉得用root權限太年夜不平安,而是許多人其實不曉得該賜與甚麼樣的權限既平安又能包管正常運轉。所以,本文更多的是斟酌這類情形下,我們該若何簡略的設置裝備擺設一個平安的mysql。注:本文測試情況為mysql-5.6.4
2、Mysql權限引見

   mysql中存在4個掌握權限的表,分離為user表,db表,tables_priv表,columns_priv表。

   mysql權限表的驗證進程為:

1.先從user表中的Host,User,Password這3個字段中斷定銜接的ip、用戶名、暗碼能否存在,存在則經由過程驗證。

2.經由過程身份認證後,停止權限分派,依照user,db,tables_priv,columns_priv的次序停止驗證。即先檢討全局權限表user,假如user中對應的權限為Y,則此用戶對一切數據庫的權限都為Y,將不再檢討db, tables_priv,columns_priv;假如為N,則到db表中檢討此用戶對應的詳細數據庫,並獲得db中為Y的權限;假如db中為N,則檢討tables_priv中此數據庫對應的詳細表,獲得表中的權限Y,以此類推。

3、mysql有哪些權限

201557120429872.jpg (698×734)

201557120509083.jpg (702×342)

4、數據庫層面(db表)的權限剖析

https://www.aspphp.online/shujuku/UploadFiles_3118/201707/2017072814414950.jpg (699×737)

5、mysql平安設置裝備擺設計劃

   1 限制拜訪mysql端口的ip

   windows可以經由過程windows防火牆或許ipsec來限制,linux下可以經由過程iptables來限制。

   2 修正mysql的端口

   windows下可以修正設置裝備擺設文件my.ini來完成,linux可以修正設置裝備擺設文件my.cnf來完成。

   3 對一切用戶設置強暗碼並嚴厲指定對應賬號的拜訪ip

   mysql中可在user表中指定用戶的拜訪可拜訪ip

   4 root特權賬號的處置

   建議給root賬號設置強暗碼,並指定只允許當地登錄

   5 日記的處置

   如須要可開啟查詢日記,查詢日記會記載登錄和查詢語句。

   6 mysql過程運轉賬號

   在windows下制止應用local system來運轉mysql賬戶,可以斟酌應用network service或許本身新建一個賬號,然則必需授與mysql法式地點目次的讀取權限和data目次的讀取和寫入權限; 在linux下,新建一個mysql賬號,並在裝置的時刻就指定mysql以mysql賬戶來運轉,授與法式地點目次的讀取權限,data地點目次的讀取和寫入權限。

   7 mysql運轉賬號的磁盤權限

1)mysql運轉賬號須要賜與法式地點目次的讀取權限,和data目次的讀取和寫入權限
2)不允許賜與其他目次的寫入和履行權限,特殊是有網站的。
3)撤消mysql運轉賬戶關於cmd,sh等一些法式的履行權限。

   8 網站應用的mysql賬戶的處置

   新建一個賬戶,賜與賬戶在所應用數據庫的一切權限便可。如許既能包管網站對所對應的數據庫的全體操作,也能包管賬戶不會由於權限太高而影響平安。賜與單個數據庫的一切權限的賬戶不會具有super, process, file等治理權限的。 固然,假如能很明白是的曉得,我的網站須要哪些權限,照樣不要多給權限,由於許多時刻宣布者其實不曉得網站須要哪些權限,我才建議下面的設置裝備擺設。並且我指的通用的,詳細到只要幾台機械,不多的情形下,我小我建議照樣賜與只須要的權限,詳細可參考下面的表格的建議。

   9 刪除無用數據庫

   test數據庫對新建的賬戶默許有權限
6、mysql入侵提權剖析及避免辦法

   普通來講,mysql的提權有這麼幾種方法:

   1 udf提權

   此方法的症結導入一個dll文件,小我以為只需公道掌握了過程賬戶對目次的寫入權限便可避免被導入dll文件;然後假如萬一被攻破,此時只需過程賬戶的權限夠低,也沒辦履行高危操作,如添加賬戶等。

   2 寫入啟動文件

   這類方法同上,照樣要公道掌握過程賬戶對目次的寫入權限。

   3 當root賬戶被洩漏

   假如沒有公道治理root賬戶招致root賬戶被入侵,此時數據庫信息確定是沒方法包管了。然則假如對過程賬戶的權限掌握住,和其對磁盤的權限掌握,辦事器照樣可以或許包管不被失守的。

   4 通俗賬戶洩漏(上述所說的,只對某個庫有一切權限的賬戶)

   此處說的通俗賬戶指網站應用的賬戶,我給的一個比擬便利的建議是直接賜與特定庫的一切權限。賬戶洩漏包含存在注入及web辦事器被入侵後直接拿到數據庫賬戶暗碼。

   此時,對應的誰人數據庫數據不保,然則不會威逼到其他數據庫。並且這裡的通俗賬戶無file權限,一切不克不及導出文件到磁盤,固然此時照樣會對過程的賬戶的權限嚴厲掌握。

   通俗賬戶賜與甚麼樣的權限可以見上表,其實不會就直接賜與一個庫的一切權限。
7、平安設置裝備擺設須要的經常使用敕令

   1.新建一個用戶並賜與響應數據庫的權限
  

 grant select,insert,update,delete,create,drop privileges on database.* to user@localhost identified by 'passwd';
 grant all privileges on database.* to user@localhost identified by 'passwd';

     2.刷新權限

flush privileges;

   3. 顯示受權

show grants;

   4. 移除受權

revoke delete on *.* from 'jack'@'localhost';

   5. 刪除用戶

drop user 'jack'@'localhost';

   6. 給用戶更名

rename user 'jack'@'%' to 'jim'@'%';

   7. 給用戶改暗碼

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

   8. 刪除數據庫

drop database test;

   9. 從數據庫導出文件

select * from a into outfile "~/abc.sql"

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