怎麼開啟MySQL資料庫遠端訪問許可權
我們在使用mysql資料庫時,有時我們的程式與資料庫不在同一機器上,這時我們需要遠端訪問資料庫。
預設狀態下,mysql的預設使用者沒有遠端訪問的許可權。
下面給大家介紹兩種方法,解決這一問題。
1.1 方案1:改表法
由於賬號預設沒有遠端訪問許可權,所以首先登入本地電腦的MySQL,更改mysql資料庫裡中user表裡的host項。
非生產環境中,使用以上方式可以迅速解決問題。
但如果是實際的生產環境,肯定還是需要重新建立一個使用者,然後根據需要分配訪問ip和許可權(授權法)。
1.2 方案2:授權法
1.1.1 許可權表
下面我們先來了解一下user表。
user表是MySQL中最重要的一個許可權表,表中的列很多,我們可以通過下面的命令檢視錶的基本結構:
我們重點關注user和host這兩個欄位。使用者登入時,首先要判斷的就是這兩個欄位和登入密碼的值,這3個欄位的值同時匹配,MySQL資料庫系統才允許使用者登入。
大家可以看到,預設情況下,MySQL的幾個預設使用者只允許localhost(本地)的連線,從遠端連線肯定會被拒絕。
1.1.2 新增新使用者並授權
根據需要建立相應的使用者及訪問許可權即可
1.3 關於MySQL使用者帳號管理的相關知識點
MySQL使用者帳號管理主要用grant(授權)和revoke(撤權)兩個SQL指令來管理。這兩個指令實質是通過操作user(連線許可權和全域性許可權)、db(資料庫級許可權)、tables_priv(資料表級許可權)、columns_priv(資料列級許可權)四個許可權表來分配許可權的。host許可權表不受這兩個指令影響。下面將會詳細介紹使用者許可權管理的內容。
1.3.1 GRANT語法
示例:
1、‘%’代表任意字元,‘_’代表一個任意字元;主機名部份還可以是IP地址
2、如果沒有給定主機部份,則預設為任意主機,也就是'test'和'test'@'%'是等價的
1.3.2 訪問許可權列表及許可權的作用範圍
表1:訪問許可權及說明
表2:許可權作用範圍(由on子句設定)
1.3.3 修改與許可權無關的帳戶項
1.3.4 把自已所擁用的許可權轉授給其他使用者
前提:當前使用者需要擁有WITH GRANT OPTION許可權
1.3.5 限制資源使用
說明:預設都是零值,即沒有限制。FLUSH USER_RESOURCES和FLUSH PRIVILEGES可對資源限制計數器清零。
1.3.6 使用REVOKE撤銷許可權
基本語法:
mysql > REVOKE privileges (columns) ON what FROM account;
示例:刪除賬號test從本機查詢資料庫db的許可權
mysql > REVOKE SELECT ON db.* FROM 'test'@'localhost';
REVOKE可刪除許可權,但不能刪除帳號,即使帳號已沒有任何許可權。所以user資料表裡還會有該帳號的記錄,要徹底刪除帳號,需用DELETE命令刪除user資料表的記錄,如:
REVOKE不能刪除REQUIRE和資源佔用的配置。他們是要用GRANT來刪除的,如:
以上所述是大雄給大家介紹的MySQL資料庫遠端訪問的許可權如何開啟的方法,希望對大家有所幫助,更多幹貨持續關注老九學堂微信公眾號!