MySQL创建普通用户
創建普通用戶
在創建用戶之前,通過SELECT語句,查看mysql.user表中有哪些用戶
查詢結果
可以看出,user表中只有一個root用戶信息
由于,MySQL中存儲的數據較多,通常一個root用戶,是無法管理這些數據的,因此,需要創建多個普通用戶,來管理不同的數據
創建普通用戶有三種方式
GRANT語句
使用GRANT語句創建用戶
GRANT語句,不僅可以創建新用戶,還可以對用戶進行授權,該語句會自動加載權限表,不需要手動刷新,而且安全、準確、錯誤少,因此,使用GRANT語句是創建用戶最常用的方法
語法格式
GRANT privileges ON database.table
TO ‘username’ @’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]
[,’username’ @’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……
參數說明
privileges,表示該用戶,具有的權限信息
Database.table,表示新用戶的權限范圍表,可以在指定的數據庫、表上使用自己的權限
username,是新用戶的名稱
hostname,是主機名
password,是新用戶的密碼
使用GRANT語句,創建一個新用戶,用戶名為user1、密碼為123,并授予該用戶chapter08.student表的查詢權限
GRANT SELECT ON chapter08.student TO ‘user1’ @’localhost’ INDENTIFIED BY ‘123’;
使用SELECT語句,驗證用戶是否創建成功
可以看出,創建了一個新用戶user1,但是,密碼顯示的不是123,而是一串字符,因為,在創建用戶時,會對用戶的密碼自動進行加密,提高數據的安全性
注意,用戶使用GRANT語句,創建新用戶時,必須有GRANT權限
CREATE USER語句
使用CREATE USER語句創建用戶
使用CREATE USER語句,創建新用戶時,服務器會自動修改相應的授權表
注意,用于使用GRANT語句創建新用戶時,必須有GRANT權限
語法格式
CREATE USER ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]
[,’username’@’hostname’ [IDENTIFIED BY [PASSWORD] ‘password’]]……
參數說明
username,表示新創建的用戶名
hostname,表示主機名
IDENTIFIED BY,用于設置用戶的密碼
Password,表示用戶的密碼
PASSWORD,表用使用哈希值設置密碼,該參數是可選的,如果,密碼是一個普通的字符串,就不需要使用PASSWORD關鍵字
使用CREATE USER語句,創建一個新用戶,用戶名為user2,密碼為123
可以看出,創建了一個user2用戶
注意
如果,添加的用于已經存在,那么執行CREATE USER語句時,會報錯
INSERT語句
使用INSERT語句創建用戶
MySQL中,不管是CREATE USER還是GRANT語句,在創建用戶時,實際上都是在user表中,添加一條新的記錄
因此,可以使用INSERT語句,直接在該表中添加一個用戶
語法格式
INSERT INTO mysql.user(Host,User,Password,ss1_cipher,x509_issuer,x509_subject)
VALUES (‘hostname’,’username’,PASSWORD (‘password’), ”, ”, ”);
參數說明
Mysql.user,表示操作的表
Host、User、Password、ssl_cipher、x509_issuer、x509_subject為相應的字段
PASSWORD(),是一個加密函數,用于給密碼加密
注意,使用INSERT語句創建用戶時,只需添加Host、User和Password這三個字段,即可,其他的字段取其默認值
但是,由于ssl_cipher、x509_issuer、x509_subject字段是沒有默認值的,因此,INSERT語句創建用戶時,還需要為這幾個字段設置初始值
使用INSERT語句,在mysql.user表中創建一個新用戶,用戶名為user3,密碼為123
可以看出,創建了一個新用戶user3
但是,由于INSERT語句沒有刷新權限表的功能,因此,user3用戶暫時是不能使用的,為了讓當前用戶生效,需要手動刷新當前的權限表,或者重新啟動MySQL服務
FLUSH PRIVILEGES
刷新權限表的語句
FLUSH PRIVILEGES;
刷新之后,就可以使用user3用戶,登錄MySQL數據庫了
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的MySQL创建普通用户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL的user表
- 下一篇: MySQL删除普通用户