mysql开启权限控制_mysql开启远程访问及相关权限控制
開啟mysql遠程訪問:
授予用戶user 密碼 passwd 所有權限 所有主機IP可訪問
授權語句:Grant on 表名[(列名)] to 用戶 With grant option或 GRANT ON FROM
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;
ALL PRIVILEGES表示所有權限,.表示所有數據庫和表,%表示所有IP,WITH GRANT OPTION授予授權權限,如果想讓授權的用戶,也可以將這些權限 grant 給其他用戶,需要選項 “grant option“。
l
只能訪問數據庫gogs的所有權控制
GRANT ALL PRIVILEGES ON gogs.* TO 'user2'@'%' IDENTIFIED BY 'passwd2' WITH GRANT OPTION;
分別授予用戶所有主機IP可訪問,分別擁有增刪改查權限
GRANTselectON*.*TO'user1'@'%'IDENTIFIED BY'passwd1'WITH GRANT OPTION;
GRANT insert ON*.*TO'user2'@'%'IDENTIFIED BY'passwd2'WITH GRANT OPTION;
GRANT updata ON*.*TO'user3'@'%'IDENTIFIED BY'passwd3'WITH GRANT OPTION;
GRANTdeleteON*.*TO'user4'@'%'IDENTIFIED BY'passwd4'WITH GRANT OPTION;
查詢用戶具有的權限,因為只給了查詢權限,所以只有Select_priv: Y。
mysql>GRANTselectON*.*TO'user'@'%'IDENTIFIEDBY'passwd'WITHGRANTOPTION;
QueryOK,0rows affected,1warning(0.02sec)
mysql>select*frommysql.userwhereuser='user'\G;
***************************1.row***************************
Host:%
User:user
Select_priv:Y
Insert_priv:N
Update_priv:N
Delete_priv:N
Create_priv:N
Drop_priv:N
1rowinset(0.00sec)
ERROR:
Noquery specified
l? 二、撤銷已經賦予給 MySQL 用戶權限的權限。
revoke 跟 grant 的語法差不多,只需要把關鍵字 “to” 換成 “from” 即可:
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
grant, revoke 用戶權限后,該用戶只有重新連接 MySQL 數據庫,權限才能生效。
l? 三、對數據庫開啟只讀權限,用于數據庫熱備份
1)、 對于MySQL單實例數據庫和master庫,如果需要設置為只讀狀態,需要進行如下操作和設置:
將MySQL設置為只讀狀態的命令:
mysql>showglobalvariables like"%read_only%";
mysql>flush tables with readlock;
mysql>setglobalread_only=1;
mysql>showglobalvariables like"%read_only%";
將MySQL從只讀狀態設置為讀寫狀態的命令:
mysql>unlock tables;
mysql>setglobalread_only=0;
2)、對于需要保證master-slave主從同步的salve庫
將slave從庫設置為只讀狀態,需要執行的命令為:
mysql>setglobalread_only=1;
將salve庫從只讀狀態變為讀寫狀態,需要執行的命令是:
mysql>setglobalread_only=0;
總結
以上是生活随笔為你收集整理的mysql开启权限控制_mysql开启远程访问及相关权限控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国现役狙击枪介绍?
- 下一篇: python异步框架twisted_Py