天天看點

MYSQL遠端登入權限設定

Mysql預設關閉遠端登入權限,如下操作允許使用者在任意地點登入:

1. 進入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION;

IDENTIFIED BY後跟的是密碼,可設為空。

2. FLUSH privileges; 更新

Mysql為了安全性,在預設情況下使用者隻允許在本地登入,可是在有此情況下,還是需要使用使用者進行遠端連接配接,是以為了使其可以遠端需要進行如下操作:

一、允許root使用者在任何地方進行遠端登入,并具有所有庫任何操作權限,具體操作如下:

在本機先使用root使用者登入mysql:

mysql -u root -p"youpassword"

進行授權操作:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

重載授權表:

FLUSH PRIVILEGES;

退出mysql資料庫:

exit

二、允許root使用者在一個特定的IP進行遠端登入,并具有所有庫任何操作權限,具體操作如下:

GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword" WITH GRANT OPTION;

三、允許root使用者在一個特定的IP進行遠端登入,并具有所有庫特定操作權限,具體操作如下:

GRANT select,insert,update,delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword";

四、删除使用者授權,需要使用REVOKE指令,具體指令格式為:

REVOKE privileges ON 資料庫[.表名] FROM user-name;

具體執行個體,先在本機登入mysql:

GRANT select,insert,update,delete ON TEST-DB TO test-user@"172.16.16.152" IDENTIFIED BY "youpassword";

再進行删除授權操作:

REVOKE all on TEST-DB from test-user;

****注:該操作隻是清除了使用者對于TEST-DB的相關授權權限,但是這個“test-user”這個使用者還是存在。

最後從使用者表内清除使用者:

DELETE FROM user WHERE user="test-user";

五、MYSQL權限詳細分類:

全局管理權限:

FILE: 在MySQL伺服器上讀寫檔案。

PROCESS: 顯示或殺死屬于其它使用者的服務線程。

RELOAD: 重載通路控制表,重新整理日志等。

SHUTDOWN: 關閉MySQL服務。

資料庫/資料表/資料列權限:

ALTER: 修改已存在的資料表(例如增加/删除列)和索引。

CREATE: 建立新的資料庫或資料表。

DELETE: 删除表的記錄。

DROP: 删除資料表或資料庫。

INDEX: 建立或删除索引。

INSERT: 增加表的記錄。

SELECT: 顯示/搜尋表的記錄。

UPDATE: 修改表中已存在的記錄。

特别的權限:

ALL: 允許做任何事(和root一樣)。

USAGE: 隻允許登入--其它什麼也不允許做。