MySQL資料庫使用者授權管理

來源:互聯網
上載者:User

標籤:mysql   使用者授權   

一、使用者授權

1、注意事項:

-  MySQL資料庫伺服器搭建好之後,放在獨立的房間裡或者是IDC機房,MySQL資料庫服務預設只允許資料庫管理員root在本地登入,要在其他用戶端登入管理資料庫則需要授權才可以。

-  程式員(網站運行資料)編程使用資料庫都是在用戶端,需要授權。

-  預設只有資料庫管理員在資料庫伺服器本機登入才有授權許可權

2、授權庫mysql,主要的幾個表:

- user:記錄使用者的資訊

 host:用戶端 user:授權使用者名password:授權使用者密碼  *_priv:許可權

- db:記錄授權使用者對庫的授權資訊  

 //工作中刪除test及表的完全許可權記錄(delete from mysql.db where user=“”

 Host:用戶端  Db:庫名 user:使用者名稱 *_priv:許可權

- tables_priv:記錄授權使用者對錶的授權資訊

有對錶的授權的時候才會有記錄

Host  db user  table_name  grantor timestamp  table_priv  column_priv

- columns_priv:記錄授權使用者對欄位的授權資訊

有對欄位的授權才會記錄(grant select,update(name,sex) on studb.usertab tolucy;

3、授權命令:

格式:mysql>grant 許可權列表 on 資料庫名.表名 to 使用者名稱@ //網路中所有主機可用該使用者登入,無需密碼

  mysql>grant 許可權列表 on 資料庫名.表名to 使用者名稱@“用戶端地址”//只允許一台用戶端用該使用者名稱登入,無需密碼

  mysql>grant 許可權列表 on 資料庫名.表名to 使用者名稱@“用戶端地址”  identified by “密碼”//只允許一台用戶端用該使用者名稱登入,要求輸入密碼

 mysql>grant 許可權列表 on 資料庫名.表名to 使用者名稱@“用戶端地址”  identified by “密碼” withgrant option//只允許一台用戶端用該使用者名稱登入,要求輸入密碼,該使用者有給其他使用者授權的許可權

1)許可權列表:使用者串連後對資料庫有什麼樣的操作許可權

- all:對指定的庫擁有全部許可權

- select:只有查看指定庫的許可權

- insert:只有在指定庫的插入記錄許可權

- update:updtae(欄位1,欄位2.......)更新許可權,對某表某欄位的更改許可權

- delete:

- USAGE:對庫和表沒有任何許可權,使用者只能登入

- 多個許可權逗號,分隔:select,insert...

(許可權‘Select‘,‘Insert‘,‘Update‘,‘Delete‘,‘Create‘,‘Drop‘,‘Grant‘,‘References‘,‘Index‘,‘Alter‘,‘CreateView‘,‘Show view‘,‘Trigger‘  )

2)資料庫名:

- *.*:所有庫

- 資料名.*:某個庫中所有表有許可權

- 資料庫名.表名:某個庫的某個表有許可權

3)使用者名稱:授權時自訂,要有標識性,儲存在mysql.user表裡

4)用戶端地址:

- @“%”或不設定:代表網路中所有主機

- @“192.168.1.%”:該網段的所有主機

- @“ip地址”:只允許在該ip地址的主機登入

- @“主機名稱”:保證該主機名稱可以被解析  如:@”pc1.tarena.com”  //不常用

[email protected]”%.tarena.com”:允許tarena.com地區所有主機登入保證可被解析   //不常用

5)identified by “密碼”:可選項,授權使用者登入時使用的密碼,自訂

6)with  grant option :可選項,讓授權使用者有授權許可權

樣本:mysql>grant select on bbsdb.usertab to [email protected]“192.168.4.1” identifiedby “123” with grant option;

  mysql>grant all on  *.* to [email protected]“192.168.4.205” identified by“123” with grant option; //授權資料庫管理員root可以在192.168.4.205上登入資料庫

4、登入使用者查看自己的許可權:mysql>show grants;

資料庫管理員查看授權使用者的許可權資訊:mysql>show grants [email protected]

查看授權使用者有哪些:mysql>select user,host from mysql.user

5、查看當前登入使用者是誰:mysql>select user();

6、授權資訊儲存在資料庫伺服器中的mysql庫中的表裡

7、伺服器端和用戶端關閉防火牆和SELinux(disable)

用戶端登入:#mysql -h資料庫伺服器IP  -u授權使用者名  -p密碼

8、授權許可權:

a)        授權許可權需對mysql庫有全部許可權

b)       授權許可權只能把自己所擁有的許可權給別人(授自己有許可權的庫/表)

c)        如:給開發部經理授權許可權,他給部門程式員授權

Grant all on webdb.*to [email protected]”%” identified by “123” with grant option

Grant all on mysql.*to [email protected]“%” identified by “123”

9、授權使用者修改自己的登入密碼

Set password=password(“新密碼”);

10、管理員可重設使用者的密碼

Set password for 使用者名稱@“用戶端地址”=password(“新密碼”);

二、撤銷使用者權限

1、對目標庫/表有過授權才能撤銷成功

2、有授權許可權的使用者在用戶端登入也可以執行撤銷許可權

3、撤銷命令:

格式:revoke 許可權列表 on 資料庫名(.表名)  from  使用者名稱@“用戶端地址”

資料庫名(.表名):這個位置要有過授權

樣本:revoke delet on *.*  from  [email protected]“192.168.4.205”

  revoke all  on *.*  from  [email protected]“192.168.4.205” //撤銷的是許可權,使用者仍能登入,all是對庫和表的操縱許可權不包括授權許可權

  revoke grant  option  on *.*  from  [email protected]“192.168.4.205”//撤銷授權許可權

revoke撤銷的是許可權,不會刪除授權使用者資訊(仍儲存在mysql.user表裡),仍能登入4、要徹底刪除授權使用者,則刪除mysql.user表裡該授權使用者的記錄:

delete from mysql.user where user=“使用者名稱”

 


本文出自 “IT技術學習” 部落格,請務必保留此出處http://learningit.blog.51cto.com/9666723/1788317

MySQL資料庫使用者授權管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.