MySQL 權限管理二

一、MySQL權限簡介
 那麼Mysql的權限是如何實現的呢?這就要說到mysql的兩階段驗證,下面詳細介紹:第一階段:服務器首先會檢查你是否允許連接。因爲創建用戶的時候會加上主機限制,可以限制成本地、某個IP、某個IP段、以及任何地方等,只允許你從配置的指定地方登陸。第二階段:如果你能連接,Mysql會檢查你發出的每個請求,看你是否有足夠的權限實施它。比如你要更新某個表、或者查詢某個表,Mysql會查看你對哪個表或者某個列是否有權限。再比如,你要運行某個存儲過程,Mysql會檢查你對存儲過程是否有執行權限等。
 

MYSQL的權限如何分佈,就是針對表可以設置什麼權限,針對列可以設置什麼權限如下:

權限分佈

可能的設置的權限

表權限

‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’

列權限

‘Select’, ‘Insert’, ‘Update’, ‘References’

過程權限

‘Execute’, ‘Alter Routine’, ‘Grant’

 

 二、MySQL權限經驗原則:

    權限控制主要是出於安全因素,因此需要遵循一下幾個經驗原則:

    1、只授予能滿足需要的最小權限,防止用戶幹壞事。比如用戶只是需要查詢,那就只給select權限就可以了,不要給用戶賦予update、insert或者delete權限。

    2、創建用戶的時候限制用戶的登錄主機,一般是限制成指定IP或者內網IP段。

    3、初始化數據庫的時候刪除沒有密碼的用戶。安裝完數據庫的時候會自動創建一些用戶,這些用戶默認沒有密碼。

    4、爲每個用戶設置滿足密碼複雜度的密碼。

    5、定期清理不需要的用戶。回收權限或者刪除用戶。
 

三、MySQL權限實戰:

    1、GRANT命令使用說明:

    先來看一個例子,創建一個只允許從本地登錄的超級用戶jack,並允許將權限賦予別的用戶,密碼爲:syy

grant all privileges on *.* to syy@'localhost' identified by 'syy' with grant option;

 GRANT命令說明:
    ALL PRIVILEGES 是表示所有權限,你也可以使用select、update等權限。

    ON 用來指定權限針對哪些庫和表。

    *.* 中前面的*號用來指定數據庫名,後面的*號用來指定表名。

    TO 表示將權限賦予某個用戶。

    syy@’localhost’ 表示jack用戶,@後面接限制的主機,可以是IP、IP段、域名以及%,%表示任何地方。注意:這裏%有的版本不包括本地,以前碰到過給某個用戶設置了%允許任何地方登錄,但是在本地登錄不了,這個和版本有關係,遇到這個問題再加一個localhost的用戶就可以了。

    IDENTIFIED BY 指定用戶的登錄密碼。

    WITH GRANT OPTION 這個選項表示該用戶可以將自己擁有的權限授權給別人。注意:經常有人在創建操作用戶的時候不指定WITH GRANT OPTION選項導致後來該用戶不能使用GRANT命令創建用戶或者給其它用戶授權。

備註:可以使用GRANT重複給用戶添加權限,權限疊加,比如你先給用戶添加一個select權限,然後又給用戶添加一個insert權限,那麼該用戶就同時擁有了select和insert權限。

 2、刷新權限

    使用這個命令使權限生效,尤其是你對那些權限表user、db、host等做了update或者delete更新的時候。以前遇到過使用grant後權限沒有更新的情況,只要對權限做了更改就使用FLUSH PRIVILEGES命令來刷新權限。

flush privileges;

 3、查看權限

show grants;

show grants for  'syy'@'%'

4、回收權限

revoke  delete on *.* grom 'syy'@'localhost'

5、刪除用戶

drop  user 'syy'@'localhost'

6、對賬號重命名

rename user 'syy'@'%' to 'change'@'%'

7、修改密碼

  • 使用命令:
set PASSWORD FOR 'root'@'localhost' = PASSWORD("123456");

  • 用mysqladmin
mysqladmin -u用戶名 -p123456 password12345abc

mysqladmin -u用戶名 -p舊密碼  password 新密碼

  • 用update直接編輯用戶密碼

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章