如何創建mysql用戶并授予權限?為了實現良好的安全性,需要為每個應用程序創建單獨的用戶帳戶,而不是root用戶訪問數據庫。這將確保應用程序無法訪問其他應用程序的數據庫。因此需要mysql管理員(root)權限來創建用戶帳戶并為數據庫分配權限。
對于信息,MySQL root帳戶與系統root帳戶不同,它們之間沒有任何關系。(相關推薦:MySQL教程)
1、在MySQL中創建新用戶
使用具有shell訪問權限的root用戶登錄MySQL服務器并創建名為“rahul”的新用戶。下面的命令只允許從localhost系統訪問用戶rahul的MySQL服務器。
mysql>?CREATE?USER?'rahul'@'localhost'?IDENTIFIED?BY?'password';
現在將權限分配給特定數據庫。下面的命令將允許用戶rahul擁有數據庫“mydb”的所有權限。
mysql>?GRANT?ALL?ON?mydb.*?TO?'rahul'@'localhost';
創建用戶并分配適當的權限后,請確保重新加載權限。
mysql>?FLUSH?PRIVILEGES;
2.創建可遠程訪問的MySQL用戶
允許任何用戶從遠程系統連接MySQL服務器。您需要指定遠程系統的主機名或IP地址。還可以使用%來允許任何主機
mysql>?CREATE?USER?'rahul'@'123.45.67.89'?IDENTIFIED?BY?'password'; mysql>?CREATE?USER?'rahul'@'%'?IDENTIFIED?BY?'password'; mysql>?FLUSH?PRIVILEGES;
3、在MySQL中授予特定用戶權限
下面是MySQL用戶常用權限列表。訪問MySQL教程以獲取MySQL用戶的完整權限列表。
ALL [PRIVILEGES] -授予用戶所有權限。
CREATE -授予用戶創建新數據庫和表的權限。
DROP -授予用戶刪除(drop)數據庫和表的權限。
DELETE -授予用戶刪除表中的行的權限。
ALTER -授予用戶修改表結構的權限。
INSERT -授予用戶在表中插入(add)行的權限。
SELECT -授予用戶運行select命令以從表中讀取數據的權限。
UPDATE -授予用戶更新表中的數據的權限。
EXECUTE -授予用戶執行存儲的例程的權限。
FILE -授予用戶訪問服務器主機上的文件的權限。
GRANT OPTION -授予用戶授予或刪除其他用戶權限的權限。
在這里,可以指定用逗號分隔的權限來代替所有權限。例如,允許對數據庫mydb上的’rahul’@’localhost’進行CREATE,DELETE,INSERT,UPDATE訪問。
mysql>?GRANT?CREATE,DELETE,INSERT,UPDATE?ON?mydb.*?TO?'rahul'@'localhost'; mysql>?FLUSH?PRIVILEGES;
4、撤消MySQL中的用戶權限
使用REVOKE命令從用戶中刪除任何特定權限。例如,從mydb數據庫上的用戶’rahul’@’localhost’中刪除DELETE權限。
mysql>?REVOKE?DELETE?ON?mydb.*?TO?'rahul'@'localhost'; mysql>?FLUSH?PRIVILEGES;
5、在MySQL中刪除用戶
您可以使用DROP命令從MySQL中刪除任何用戶。例如,要刪除用戶’rahul’@’localhost’,可以使用以下命令。
mysql>?DROP?USER?'rahul'@'localhost'; mysql>?FLUSH?PRIVILEGES;