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設置裝備擺設刪除,然後從新啟動辦事便可。
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。