MYSQL8.0新建用戶并授予權(quán)限流程
#?登錄(這里用的是root賬號)
mysql -u root -p

#進(jìn)入到mysql.db
use mysql;

#查看當(dāng)前的用戶以及可訪問的地址還有授權(quán)能力
select user,host,grant_priv from user;

#如果root用戶無授權(quán)能力(grant_priv = 'N'),則可以開起來
update mysql.user set Grant_priv='Y' where user='root';

#創(chuàng)建用戶,最后的參數(shù)是密碼。‘localhost’表示只能本機(jī)登錄,也可以設(shè)置你期望的登錄ip,不設(shè)置的話默認(rèn)是‘%’,也就是都可以登錄
create user 'happytest'@'localhost' identified by 'happytest';


#給新用戶授權(quán),這里授予的權(quán)限是只能操作一個數(shù)據(jù)庫(數(shù)據(jù)庫名為:happy_db,把數(shù)據(jù)庫名變成 *.*?就是給所有數(shù)據(jù)庫的權(quán)限)(如果root用戶只允許localhost登錄,而這里授權(quán)的時候又給用戶授予不管任何地址都可以登錄的能力,則會報無權(quán)限的錯。此時需要把root用戶也改成‘%’的登錄限制才行)(也就是說,授權(quán)者的可登錄源ip范圍應(yīng)該 ≥?被授權(quán)者的可登錄源ip范圍)
grant all privileges on happy_db.* to 'happytest'@'localhost';



# 本質(zhì)上的作用是將當(dāng)前user和privilige表中的用戶信息/權(quán)限設(shè)置從mysql庫(MySQL數(shù)據(jù)庫的內(nèi)置庫)中提取到內(nèi)存里。mysql 新設(shè)置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權(quán)限相關(guān)表,否則會出現(xiàn)拒絕訪問
flush privileges;
#刪除對應(yīng)的用戶(且為只能以該方式登錄的用戶)
drop user happytest@localhost;

