mysql撤销用户授权_mysql用户授权及撤销
mysql數據庫服務在不做授權的情況下只允許數據庫管理員從數據庫服務器本機登錄。
默認只有數據庫管理員從數據庫服務器本機登錄才有授權權限
mysql -u root -p (本機登錄mysql服務器)
mysql -u root -h 192.168.4.5 -p (遠程連接mysql服務器)
方式1 在庫外重置數據庫管理員密碼:
[root@localhost 桌面]# mysqladmin -hlocalhost -uroot -p password "123456"???? ????#設置新密碼123456
Enter password:??????????????????????????????????????????????????????????????????????????????????????????????????????????????? #輸入舊密碼
方式2 在不知道密碼的情況下修改數據管理員密碼:
[root@localhost 桌面]#/etc/init.d/stop???????????????????????????????????????????????????? ?停用mysql服務器
[root@localhost 桌面]#/etc/init.d/mysql start --skip-grant-tables???????? ?跳過授權表啟用mysql服務器
[root@localhost 桌面]# mysql???-u root?????????????????????????????????????????????????????免密碼進入mysql服務器
mysql> update mysql.user????????????????????????????????????????????????? #直接修改mysql密碼表
-> set password=password("123456")??????????????????????????? #密碼設置成123456??? -> where host="localhost";
Query OK, 1 row affected (0.03 sec)????????????????????????????????? #設置完成后重新啟用mysql服務
用戶授權:
格式1:grant 權限列表 on 數據庫名 to 用戶名;??????????????????? #授權用戶權限,所有地址都能訪問
格式2:grant 權限列表 on 數據庫名 to 用戶名@"客戶端地址";?? #授權指定地址客戶端用戶權限
格式3:grant 權限列表 on 數據庫名 to 用戶名@"客戶端地址"? identified by? "密碼"? with grant option;? #授權這個用戶權限 設置訪問密碼并且賦予授權的權限
權限列表的表示:
usage??? ?無權限
all???? 所有權限
insert,update(name,age),delete?? 多個權限
insert????? 某個權限
identified by "密碼"???? 設置訪問密碼? 可選項 若不設置沒有訪問密碼
with grant option????????? 讓授權用戶有授權權限,可選項,若不設置授權用戶無授權權限
數據庫名的表示方式:
*.*??????? #服務器上的所有庫所有表
數據庫名.*??? #某個庫
數據庫名.表名??? 某個表
客戶端地址的表示方式(可選項,不設置時,匹配所有地址):
%?????? 所有地址
192.168..4.%????? 某個網段
192.168.4.205??????? 一個IP
pc1.baidu.com??? 主機名
%.baidu.com???? 區域
查詢授權命令:
mysql> show grants??????????? #查看當前用戶權限
mysql> select user()?????????? #查看當前登錄的用戶是誰
授權權限grant:
grant all on *.* to root@"192.168.2.100" identified by "12345" with grant option;????? #授權可以使用管理員root用戶從客戶端192.168.2.100登錄,登錄后有所有權限并有授權的權限,登錄密碼是 123456;
注:授權某個庫權限時,庫可以事先不存
user表???????????????????????? ?用戶有*.*權限 才記錄在此表
db表??????????????????????????? 記錄授權用戶對庫的權限信息
tables_priv?表???????????? 記錄授權用戶對表的權限信息
columns_priv 記錄授權用戶對某個字段的權限信息
mysql> select user,host from mysql.user; #查看mysql數據庫的所有用戶
mysql>? select * from mysql.user where user="liang"\G; #查看用戶liang的權限
mysql> show grants for root@"192.168.2.200"???????????????????? #查看授權用戶從某個地址登陸的權限
權限撤銷revoke(只有對數據庫做過授權才能撤銷):
mysql>? revoke???? 權限列表?? on??? 數據庫?? ?from??? ?用戶名@“客戶端地址”;
mysql>? revoke delete on *.* from root@"192.168.2.200";????? #?撤銷管理員用戶從客戶端192.168.2.200登錄后,對所有庫里所有表中記錄的刪除權限
mysql> revoke?? insert,update?? on??? teadb.*? ?from root@"192.168.2.200"; ??? # 撤銷管理員用戶從客戶端192.168.2.200登錄后,對某一個庫(teadb)里所有表中記錄的添加和更新權限(前提是對此表有此權限)
mysql> revoke??? all?? ?on?? ?*.* from root@"192.168.2.200";?????? #撤銷管理員從客戶端地址192.168.2.200登錄后對數據庫的所有權限;
mysql> delete from mysql.user where? user="root" and host="192.168.2.200";?? #刪除user表的用戶 所有權限撤銷并且此用戶在此客戶端地址不能登陸
因為在撤銷用戶授權權限時all不包括撤銷此用戶授權權限 所以撤銷此用戶授權權限如下:
mysql> revoke grant option on *.* from root@"192.168.2.200";
注:給其他用戶授權時不能給予超過自己擁有的權限
總結
以上是生活随笔為你收集整理的mysql撤销用户授权_mysql用户授权及撤销的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宿松县事业单位计算机基础知识,计算机基础
- 下一篇: mysql 小雨_Mysql数据库