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

MySQL用戶權限治理詳解

編輯:MySQL綜合教程

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


用戶權限治理重要有以下感化:
1. 可以限制用戶拜訪哪些庫、哪些表
2. 可以限制用戶對哪些表履行SELECT、CREATE、DELETE、DELETE、ALTER等操作
3. 可以限制用戶登錄的IP或域名
4. 可以限制用戶本身的權限能否可以受權給其余用戶

1、用戶受權

mysql> grant all privileges on *.* to 'yangxin'@'%' identified by 'yangxin123456' with grant option;
 •all privileges:表現將一切權限授與給用戶。也可指定詳細的權限,如:SELECT、CREATE、DROP等。
 •on:表現這些權限對哪些數據庫和表失效,格局:數據庫名.表名,這裡寫“*”表現一切數據庫,一切表。假如我要指定將權限運用到test庫的user表中,可以這麼寫:test.user
 •to:將權限授與哪一個用戶。格局:”用戶名”@”登錄IP或域名”。%表現沒無限制,在任何主機都可以登錄。好比:”yangxin”@”192.168.0.%”,表現yangxin這個用戶只能在192.168.0IP段登錄
 •identified by:指定用戶的登錄暗碼
 •with grant option:表現許可用戶將本身的權限受權給其它用戶 

可使用GRANT給用戶添加權限,權限會主動疊加,不會籠罩之前授與的權限,好比你先給用戶添加一個SELECT權限,後來又給用戶添加了一個INSERT權限,那末該用戶就同時具有了SELECT和INSERT權限。 

用戶概況的權限列表請參考MySQL官網解釋:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html


2、刷新權限

對用戶做了權限變革以後,必定記得從新加載一下權限,將權限信息從內存中寫入數據庫。

mysql> flush privileges;

3、檢查用戶權限

mysql> grant select,create,drop,update,alter on *.* to 'yangxin'@'localhost' identified by 'yangxin0917' with grant option;
mysql> show grants for 'yangxin'@'localhost';

4、收受接管權限

刪除yangxin這個用戶的create權限,該用戶將不克不及創立數據庫和表。

mysql> revoke create on *.* from 'yangxin@localhost';
mysql> flush privileges;

5、刪除用戶

mysql> select host,user from user;
+---------------+---------+
| host   | user |
+---------------+---------+
| %    | root |
| %    | test3 |
| %    | yx  |
| 192.168.0.% | root |
| 192.168.0.% | test2 |
| 192.168.0.109 | test |
| ::1   | yangxin |
| localhost  | yangxin |
+---------------+---------+
8 rows in set (0.00 sec)
mysql> drop user 'yangxin'@'localhost';

6、用戶重定名

shell> rename user 'test3'@'%' to 'test1'@'%';

7、修正暗碼

1> 更新mysql.user表

mysql> use mysql;
# mysql5.7之前
mysql> update user set password=password('123456') where user='root';
# mysql5.7以後
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;

2> 用set password敕令

語法:set password for ‘用戶名'@'登錄地址'=password(‘暗碼')

mysql> set password for 'root'@'localhost'=password('123456');

3> mysqladmin

語法:mysqladmin -u用戶名 -p舊的暗碼 password 新暗碼

mysql> mysqladmin -uroot -p123456 password 1234abcd

留意:mysqladmin位於mysql裝置目次的bin目次下

8、忘卻暗碼

1> 添加登錄跳過權限檢討設置裝備擺設

修正my.cnf,在mysqld設置裝備擺設節點添加skip-grant-tables設置裝備擺設

[mysqld]
skip-grant-tables

2> 從新啟動mysql辦事

shell> service mysqld restart

3> 修正暗碼

此時在終端用mysql敕令登錄時不須要用戶暗碼,然後依照修正暗碼的第一種方法將暗碼修正便可。


4> 復原登錄權限跳過檢討設置裝備擺設

將my.cnf中mysqld節點的skip-grant-tables設置裝備擺設刪除,然後從新啟動辦事便可。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。

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