您好,登錄后才能下訂單哦!
一、用戶授權(quán)
1、注意事項(xiàng):
- MySQL數(shù)據(jù)庫服務(wù)器搭建好之后,放在獨(dú)立的房間里或者是IDC機(jī)房,MySQL數(shù)據(jù)庫服務(wù)默認(rèn)只允許數(shù)據(jù)庫管理員root在本地登錄,要在其他客戶端登錄管理數(shù)據(jù)庫則需要授權(quán)才可以。
- 程序員(網(wǎng)站運(yùn)行數(shù)據(jù))編程使用數(shù)據(jù)庫都是在客戶端,需要授權(quán)。
- 默認(rèn)只有數(shù)據(jù)庫管理員在數(shù)據(jù)庫服務(wù)器本機(jī)登錄才有授權(quán)權(quán)限
2、授權(quán)庫mysql,主要的幾個(gè)表:
- user表:記錄用戶的信息
host:客戶端 user:授權(quán)用戶名password:授權(quán)用戶密碼 *_priv:權(quán)限
- db表:記錄授權(quán)用戶對(duì)庫的授權(quán)信息
//工作中刪除test及表的完全權(quán)限記錄(delete from mysql.db where user=“”;)
Host:客戶端 Db:庫名 user:用戶名 *_priv:權(quán)限
- tables_priv表:記錄授權(quán)用戶對(duì)表的授權(quán)信息
有對(duì)表的授權(quán)的時(shí)候才會(huì)有記錄
Host db user table_name grantor timestamp table_priv column_priv
- columns_priv表:記錄授權(quán)用戶對(duì)字段的授權(quán)信息
有對(duì)字段的授權(quán)才會(huì)記錄(grant select,update(name,sex) on studb.usertab tolucy;)
3、授權(quán)命令:
格式:mysql>grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名 to 用戶名@; //網(wǎng)絡(luò)中所有主機(jī)可用該用戶登錄,無需密碼
mysql>grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名to 用戶名@“客戶端地址”;//只允許一臺(tái)客戶端用該用戶名登錄,無需密碼
mysql>grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名to 用戶名@“客戶端地址” identified by “密碼”;//只允許一臺(tái)客戶端用該用戶名登錄,需要密碼
mysql>grant 權(quán)限列表 on 數(shù)據(jù)庫名.表名to 用戶名@“客戶端地址” identified by “密碼” withgrant option;//只允許一臺(tái)客戶端用該用戶名登錄,需要密碼,該用戶有給其他用戶授權(quán)的權(quán)限
1)權(quán)限列表:用戶連接后對(duì)數(shù)據(jù)庫有什么樣的操作權(quán)限
- all:對(duì)指定的庫擁有全部權(quán)限
- select:只有查看指定庫的權(quán)限
- insert:只有在指定庫的插入記錄權(quán)限
- update:updtae(字段1,字段2.......)更新權(quán)限,對(duì)某表某字段的更改權(quán)限
- delete:
- USAGE:對(duì)庫和表沒有任何權(quán)限,用戶只能登錄
- 多個(gè)權(quán)限逗號(hào),分隔:select,insert...
(權(quán)限'Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','CreateView','Show view','Trigger' )
2)數(shù)據(jù)庫名:
- *.*:所有庫
- 數(shù)據(jù)名.*:某個(gè)庫中所有表有權(quán)限
- 數(shù)據(jù)庫名.表名:某個(gè)庫的某個(gè)表有權(quán)限
3)用戶名:授權(quán)時(shí)自定義,要有標(biāo)識(shí)性,保存在mysql.user表里
4)客戶端地址:
- @“%”或不設(shè)置:代表網(wǎng)絡(luò)中所有主機(jī)
- @“192.168.1.%”:該網(wǎng)段的所有主機(jī)
- @“ip地址”:只允許在該ip地址的主機(jī)登錄
- @“主機(jī)名”:保證該主機(jī)名可以被解析 如:@”pc1.tarena.com” //不常用
-@”%.tarena.com”:允許tarena.com區(qū)域所有主機(jī)登錄保證可被解析 //不常用
5)identified by “密碼”:可選項(xiàng),授權(quán)用戶登錄時(shí)使用的密碼,自定義
6)with grant option :可選項(xiàng),讓授權(quán)用戶有授權(quán)權(quán)限
示例:mysql>grant select on bbsdb.usertab to jim@“192.168.4.1” identifiedby “123” with grant option;
mysql>grant all on *.* to root@“192.168.4.205” identified by“123” with grant option; //授權(quán)數(shù)據(jù)庫管理員root可以在192.168.4.205上登錄數(shù)據(jù)庫
4、登錄用戶查看自己的權(quán)限:mysql>show grants;
數(shù)據(jù)庫管理員查看授權(quán)用戶的權(quán)限信息:mysql>show grants fortom@192.168.4.205;
查看授權(quán)用戶有哪些:mysql>select user,host from mysql.user;
5、查看當(dāng)前登錄用戶是誰:mysql>select user();
6、授權(quán)信息保存在數(shù)據(jù)庫服務(wù)器中的mysql庫中的表里
7、服務(wù)器端和客戶端關(guān)閉防火墻和SELinux(disable)
客戶端登錄:#mysql -h數(shù)據(jù)庫服務(wù)器IP -u授權(quán)用戶名 -p密碼
8、授權(quán)權(quán)限:
a) 授權(quán)權(quán)限需對(duì)mysql庫有全部權(quán)限
b) 授權(quán)權(quán)限只能把自己所擁有的權(quán)限給別人(授自己有權(quán)限的庫/表)
c) 如:給開發(fā)部經(jīng)理授權(quán)權(quán)限,他給部門程序員授權(quán)
Grant all on webdb.*to webuser10@”%” identified by “123” with grant option;
Grant all on mysql.*to webuser10@“%” identified by “123”;
9、授權(quán)用戶修改自己的登錄密碼
Set password=password(“新密碼”);
10、管理員可重設(shè)用戶的密碼
Set password for 用戶名@“客戶端地址”=password(“新密碼”);
二、撤銷用戶權(quán)限
1、對(duì)目標(biāo)庫/表有過授權(quán)才能撤銷成功
2、有授權(quán)權(quán)限的用戶在客戶端登錄也可以執(zhí)行撤銷權(quán)限
3、撤銷命令:
格式:revoke 權(quán)限列表 on 數(shù)據(jù)庫名(.表名) from 用戶名@“客戶端地址”;
數(shù)據(jù)庫名(.表名):這個(gè)位置要有過授權(quán)
示例:revoke delet on *.* from root@“192.168.4.205”;
revoke all on *.* from root@“192.168.4.205”; //撤銷的是權(quán)限,用戶仍能登錄,all是對(duì)庫和表的操縱權(quán)限不包括授權(quán)權(quán)限
revoke grant option on *.* from root@“192.168.4.205”;//撤銷授權(quán)權(quán)限
revoke撤銷的是權(quán)限,不會(huì)刪除授權(quán)用戶信息(仍保存在mysql.user表里),仍能登錄4、要徹底刪除授權(quán)用戶,則刪除mysql.user表里該授權(quán)用戶的記錄:
delete from mysql.user where user=“用戶名”;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。