溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫用戶授權(quán)管理

發(fā)布時(shí)間:2020-07-14 10:02:59 來源:網(wǎng)絡(luò) 閱讀:1564 作者:zl_Linux 欄目:數(shù)據(jù)庫

一、用戶授權(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)限

- updateupdtae(字段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ī)登錄保證可被解析   //不常用

5identified by “密碼:可選項(xiàng),授權(quán)用戶登錄時(shí)使用的密碼,自定義

6with  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)閉防火墻和SELinuxdisable

客戶端登錄:#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=“用戶名

 


向AI問一下細(xì)節(jié)

免責(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)容。

AI