1. 程式人生 > 其它 >給MySQL使用者新增遠端許可權

給MySQL使用者新增遠端許可權

技術標籤:資料庫# mysqlmysql資料庫

原文地址:https://www.jeremyjone.com/777/, 轉載請註明。


大多數情況下,伺服器都是遠端的,為了安全起見,資料庫賬戶許可權一般都是本地的。那麼如何開啟遠端許可權呢?讓視覺化工具幫助我們更好更快的查詢資料庫。

檢視使用者許可權

命令列進入MySQL之後,輸入:

use mysql;
select host,user,password from user;

可以得到當前所有使用者對應的許可權域。

file

第一列就是具有許可權的域,可以看到基本都是本地。有一個 %,它表示所有域,也就是本地和遠端均有許可權。這個通常預設情況下是沒有的,需要建立。

知道了域,就可以檢視許可權了。

show grants for '使用者名稱'@'域';

將使用者名稱和域替換成自己的內容,可以得到如下內容:

file

如果沒有對應的內容,則會報錯提示。

使用者

想要操作許可權,首先需要一個使用者,總不能啥時候都用 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、賦予使用者在所有域下,資料庫 db1t1 表的查詢、插入、更新許可權

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中直接連線了,也不用擔心其他內容會有風險。