MySQL用戶管理
理解MySQL連接和查詢流程
查詢MySQL賬戶級驗證
創建和修改刪除賬戶
授權、修改和撤銷用戶權限
禁用驗證控制
MySQL常用client命令及GUI工具推薦
用戶名忘了怎么處理?
實際工作中用戶名和密碼需要注意什么?
賬號安全
賬戶管理的重要性
在MySQL中可以通過賬戶控制允許或不允許用戶執行操作
可以精細分配權限給不同職能的用戶
避免使用root賬戶
應用不能直接使用root
防止維護期間出錯
限制特定權限賬戶確保數據完整性
允許特定授權賬戶完成期工作
阻止未經授權的用戶訪問超出其特權的數據
查看用戶賬號 :mysql.user
賬號驗證:mysql_native_password
用戶優先精確匹配:'larry'@'%','larry'@'192.168.114.%','larry'@'192.168.114.119';
select user(),current_user();
user()連接用戶
current_user() 創建用戶
block特定ip連接 processlist host
alter user xxx lock;
設置密碼
1.create user ... idengtified by '';
2.set password for xxx;
3.mysqladmin password
4.alter user ... (推薦)
5.update user set
6.grant ...identified by
authentication_string 字典
expire
help alter user
alter user current_user() password expire;
lock
alter user current_user() account lock;
alter user current_user() account unlock;
用戶權限
只讀用戶
開發賬號
管理賬號
權限
file
process
supper
with grant option -- 級聯授權
show privileges;
最小權限授權
show grants for
mysqladmin reload· --flash privileges;
MySQL8.0用戶 --不用升級driver的處理方式
[mysqld]
default_authentication_plugin=mysql_native_password
character_set_server=utf8
================================
set names utf8;
create user 'xxx'@'xxx' idengtified with mysql_native_password by '';
grant all privileges on *.* to 'xxx'@'xxx';
create database if exists mydb collate 'utf8_general_ci';
密碼忘記的處理
禁用驗證控制
skip-grants-table 的風險
同時家skip-network
cp user.* /path/
update
cp xxx
chown mysql:mysql user.*
1.重啟
2.kill -HUP `pidof mysqld`
select concat('*',upper(sha1(unhex(sha1('pwd'))))) as password,password('pwd');
echo -n "pwd"|sha1sum|cut -c1-40|xxd -p -r|sha1sum|cut -c1-40|tr '[a-z]' '[A-Z]' 8ASDFAS9ASDFASDF9F9DSFFDSA
strings user.MYD
8.0賬號更安全
skip-name-resolve
