1. 程式人生 > >MySQL授權用戶及密碼恢復設置

MySQL授權用戶及密碼恢復設置

插入 ida 數據 加載 where 權限 plus upd find

MySQL密碼恢復及設置
1.停止MySQL服務程序。
2.跳過授權表啟動MySQL服務程序
skip-grant-tables(添加在配置文件)
3.重設root密碼(更新user表記錄)
4.以正常方式重啟MySQL服務程序

例:
1.恢復數據庫管理員密碼(操作系統管理員有權限修改)
#systemctl  stop  mysqld
#vim /etc/my.cnf
[mysqld]
...
skip-grant-tables
...
#systemctl  start  mysqld
#mysql
mysql> update  mysql.user   set  authentication_string=password("新密碼") where  user="root"  and host="localhost";
mysql> flush  privileges; (更新)
mysql> quit;

例:
2.恢復數據庫管理員密碼(操作系統管理員有權限修改)
#find / -name "validate_password.so" (查看模塊)
#vim /etc/my.cnf
[myslqd]
...
plugin-load=validate_password.so #加載模塊
validate_password=FORCE_PLUS_PERMANENT #永久啟用模塊
validate_password_policy=0  #只驗證密碼長度
validate_password_length=6  #指定密碼長度
..
#systemctl restart mysqld

例:
3.修改數據庫管理員本機登錄密碼(操作系統管理員有權限修改)
#mysqladmin  -hlocalhost  -uroot  -p  password  "新密碼" 
Enter password: #輸入舊密碼

創建授權
MySQL授權庫和表信息

授權庫mysql,主要的幾個表:
1.user表,存儲授權用戶的防護權限。
2.db表,存儲授權用戶對數據庫的訪問權限。
3.tables_priv表,存儲授權用戶對表的訪問權限。
4.columns_priv表,存儲授權用戶對字段的訪問權限。

GRANT 配置授權
格式:GRANT 權限列表... ON 庫名.表名 TO 用戶名@‘客戶端地址‘ IDENTIFIED BY ‘密碼‘ WITH GRANT OPTION;
-[WITH GRANT OPTION]被授權用戶是否有授權權限(可選項)

註意事項:
1.當庫名.表名為“.”時,匹配所有庫所有表。
2.授權設置存放在mysql庫的user表。

授權列表:
all    所有權限
usage  沒有權限
selec  查看權限
update 修改權限
delect 刪除權限
insert 寫入權限
drop   刪除權限
...

庫名.表名:
庫名.*   //庫下的所有表
*.*      //所有庫下的所有表

客戶端地址:
% //匹配所有主機
192.168.1.% //匹配指定的一個網段
192.168.1.1 //匹配指定IP地址的單個主機
%.baidu.com //匹配一個DNS區域
www.baidu.com //匹配指定域名的單個主機

例:
1.新建用戶mydba,對所有庫、表有完全權限,允許從任何地方訪問,密碼設置為‘123456‘,允許用戶為其他用戶授權。
mysql>grant all on  *.*  to mydba@‘%‘ identified  by ‘123456‘ with grant option;

例:
2.授權dachui用戶,允許從本機訪問,允許對userdb庫的任何表有查詢、更新、插入、刪除權限,密碼為‘123456’。
mysql>grant select,insert,update,delect  on userdb.*  to  dachui@‘localhost‘ identified by ‘123456‘;

授權用戶修改自己的密碼:SET PASSWORD=PASSWORD(‘新密碼‘);
管理員可重設其他用戶的密碼:SET PASSWORD FOR 用戶名@‘客戶端地址‘=PASSWORD(‘新密碼‘);

撤銷用戶授權
格式:REVOKE 權限列表 ON 庫名.表名 FROM 用戶名@‘客戶端地址‘;

例:
mysql>revoke insert,select on  userdb.*  from  dachui@‘localhost‘;  
mysql>show  grants for  dachui@‘localhost‘\G;

刪除授權用戶: drop mysql.user 用戶名@"客戶端地址";

MySQL授權用戶及密碼恢復設置