MySQL賬戶體系:根據(jù)賬戶所具有的權(quán)限的不同
????MySQL的賬戶可以分為以下幾種
? ??????服務(wù)實例級賬號:啟動了一個mysqld,即為一個數(shù)據(jù)庫實例;如果某用戶如root,擁有服務(wù)實例級分配的權(quán)限,那么該賬號就可以刪除所有的數(shù)據(jù)庫、連同這些庫中的表
? ??????數(shù)據(jù)庫級別賬號:對特定數(shù)據(jù)庫執(zhí)行增刪改查的所有操作
? ??????數(shù)據(jù)表級別賬號:對特定表執(zhí)行增刪改查等所有操作
? ??????字段級別的權(quán)限:對某些表的特定字段進行操作
? ??????存儲程序級別的賬號:對存儲程序進行增刪改查的操作
????賬戶的操作主要包括創(chuàng)建賬戶、刪除賬戶、修改密碼、授權(quán)權(quán)限等
注意:
????進行賬戶操作時,需要使用root賬戶登錄,這個賬戶擁有最高的實例級權(quán)限
????通常都使用數(shù)據(jù)庫級操作權(quán)限
授予權(quán)限
需要使用實例級賬戶登錄后操作,以root為例
主要操作包括:
????查看所有用戶
????修改密碼
????刪除用戶
查看所有用戶
????所有用戶及權(quán)限信息存儲在mysql數(shù)據(jù)庫的user表中
????查看user表的結(jié)構(gòu)
????????desc user;
主要字段說明:
????Host?表示允許訪問的主機
????User?表示用戶名
????authentication_string?表示密碼,為加密后的值
查看所有用戶
????select? host , user , authentication_string? from? user;
創(chuàng)建賬戶、授權(quán)
????????需要使用實例級賬戶登錄后操作,以root為例
????????常用權(quán)限主要包括:create、alter、drop、insert、update、delete、select
????????如果分配所有權(quán)限,可以使用?all privileges
可以操作python數(shù)據(jù)庫的所有表,方式為 : jing_dong.*
訪問主機通常使用 百分號% 表示此賬戶可以使用任何ip的主機登錄訪問此數(shù)據(jù)庫
訪問主機可以設(shè)置成 localhost或具體的ip,表示只允許本機或特定主機訪問
?創(chuàng)建賬戶&授權(quán)
? ??grant? 權(quán)限列表? on? 數(shù)據(jù)庫? to? '用戶名' @ '訪問主機'? identified? by? '密碼';
? ? ? ? 例:
????????????grant? select? on? jing_dong.*? to? 'laoweng' @ 'localhost'? identified? by? '123456';
查看用戶有哪些權(quán)限
????show? grants? for? laoweng@localhost ;
修改權(quán)限 (在root賬戶操作)
????grant? 權(quán)限名稱? on? 數(shù)據(jù)庫? to? 賬戶@主機? with? grant? option ;??
-- 刷新權(quán)限? (修改完后刷新)
????flush? privileges;
修改密碼
????使用root登錄,修改mysql數(shù)據(jù)庫的user表
????使用password()函數(shù)進行密碼加密
注意修改完成后需要刷新權(quán)限
????刷新權(quán)限:flushprivileges
?刪除賬戶
????????語法1:使用root登錄
????????????drop? user? '用戶名' @ '主機' ;
????????例:
????????????drop? user? 'laoweng' @ '%' ;