給MySQL使用者新增遠端許可權
阿新 • • 發佈:2021-01-27
原文地址:https://www.jeremyjone.com/777/, 轉載請註明。
大多數情況下,伺服器都是遠端的,為了安全起見,資料庫賬戶許可權一般都是本地的。那麼如何開啟遠端許可權呢?讓視覺化工具幫助我們更好更快的查詢資料庫。
檢視使用者許可權
命令列進入MySQL
之後,輸入:
use mysql;
select host,user,password from user;
可以得到當前所有使用者對應的許可權域。
第一列就是具有許可權的域,可以看到基本都是本地。有一個 %
,它表示所有域,也就是本地和遠端均有許可權。這個通常預設情況下是沒有的,需要建立。
知道了域,就可以檢視許可權了。
show grants for '使用者名稱'@'域';
將使用者名稱和域替換成自己的內容,可以得到如下內容:
如果沒有對應的內容,則會報錯提示。
使用者
想要操作許可權,首先需要一個使用者,總不能啥時候都用 root
。所以要縣建立一個使用者。
建立使用者
建立一個本地域的使用者:
create user '使用者'@'localhost' identified by 'password';
建立指定ip的使用者(以192.168.1開頭):
create user '使用者'@'192.168.1.%' identified by 'password';
建立用於遠端連線的使用者:
create user '使用者'@'%' identified by 'password';
刪除使用者
刪除很簡單:
drop user '使用者'@'域';
修改使用者
可以修改使用者名稱:
rename user '使用者名稱'@'域' to '新使用者名稱'@'域';
修改使用者密碼
set password for '使用者名稱'@'域'=Password('新密碼');
授權
有了使用者,就可以給使用者授權了,也就是賦予指定使用者某個表的某個操作的許可權。
注意,這個操作只有在
root
環境下操作才有效。因為grant
命令只有root
下才有。
所有操作都必須給出使用者的指定域,並且可以按增、刪、改、查單獨賦值。
1、賦予使用者在所有域下,資料庫 db1
的 t1
表的查詢、插入、更新許可權
grant select,insert,update on db1.t1 to '使用者'@'%';
2、賦予使用者在本地域下,資料庫 db1
的所有表的刪除許可權
grant delete on db1.* to '使用者'@'localhost';
3、賦予使用者在所有域下,所有資料庫的所有操作許可權,<這也代表了最高許可權>
grant all privileges on *.* to '使用者'@'%';
取消授權
同樣的,取消授權同樣需要在 root
環境下操作,也同樣可以單獨取消任意一項內容,包括資料庫、表、許可權等。
# 取消表 t1 的所有許可權
revoke all on db1.t1 from '使用者'@'%';
# 取消所有表的所有許可權
revoke all on db1.* from '使用者'@'%';
# 取消所有庫的所有表的更新許可權
revoke update on * from '使用者'@'%';
以此類推,所有許可權都可以單獨取消。
總結
現在,就可以建立一個使用者,新增我們想要的許可權,然後在Navicat中直接連線了,也不用擔心其他內容會有風險。