您好,登錄后才能下訂單哦!
一、用戶授權
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” //不常用
-@”%.tarena.com”:允許tarena.com區域所有主機登錄保證可被解析 //不常用
5)identified by “密碼”:可選項,授權用戶登錄時使用的密碼,自定義
6)with grant option :可選項,讓授權用戶有授權權限
示例: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; //授權數據庫管理員root可以在192.168.4.205上登錄數據庫
4、登錄用戶查看自己的權限:mysql>show grants;
數據庫管理員查看授權用戶的權限信息:mysql>show grants fortom@192.168.4.205;
查看授權用戶有哪些: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 webuser10@”%” identified by “123” with grant option;
Grant all on mysql.*to webuser10@“%” identified by “123”;
9、授權用戶修改自己的登錄密碼
Set password=password(“新密碼”);
10、管理員可重設用戶的密碼
Set password for 用戶名@“客戶端地址”=password(“新密碼”);
二、撤銷用戶權限
1、對目標庫/表有過授權才能撤銷成功
2、有授權權限的用戶在客戶端登錄也可以執行撤銷權限
3、撤銷命令:
格式:revoke 權限列表 on 數據庫名(.表名) from 用戶名@“客戶端地址”;
數據庫名(.表名):這個位置要有過授權
示例:revoke delet on *.* from root@“192.168.4.205”;
revoke all on *.* from root@“192.168.4.205”; //撤銷的是權限,用戶仍能登錄,all是對庫和表的操縱權限不包括授權權限
revoke grant option on *.* from root@“192.168.4.205”;//撤銷授權權限
revoke撤銷的是權限,不會刪除授權用戶信息(仍保存在mysql.user表里),仍能登錄4、要徹底刪除授權用戶,則刪除mysql.user表里該授權用戶的記錄:
delete from mysql.user where user=“用戶名”;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。