MySQL 用戶管理和權限管理


創建用戶

基本語法格式

CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';

關鍵字說明

關鍵字 說明
用戶名 將創建的用戶名
主機名 ** ** 指定該用戶在哪個主機上可以登陸,如果是本地用戶可用 localhost,如果想讓該用戶可以 從任意遠程主機登陸,可以使用通配符%
密碼 ** ** 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器

具體操作

  • 創建 user1 用戶,只能在 localhost 這個服務器登錄 mysql 服務器,密碼為 123

    create user 'user1'@'localhost' identified by '123';
    
  • 創建 user2 用戶可以在任何電腦上登錄 mysql 服務器,密碼為 123

    create user 'user2'@'%' identified by '123';
    
    備注:創建的用戶名都在 mysql 數據庫中的 user 表中可以查看到,密碼經過了加密。創建的新用戶都是沒什么權限的,需要授權。
    

給用戶授權

用戶創建之后,沒什么權限!需要給用戶授權。

基本語法格式

GRANT 權限1, 權限2, ... ON 數據庫名.表名 TO '用戶名'@'主機名';

關鍵字說明

關鍵字 說明
GRANT...ON...TO 授權關鍵字
權限 授予用戶的權限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等。如果要授 予所有的權限則使用 ALL
數據庫名.表名 該用戶可以操作哪個數據庫的哪些表。如果要授予該用戶對所有數據庫和表的相應操作 權限則可用表示,如.*
'用戶名'@'主機名' 給哪個用戶授權,注:有 2 對單引號

具體操作

  • 給 user1 用戶分配對 test 這個數據庫操作的權限:創建表,修改表,插入記錄,更新記錄,查詢

    grant create, alter, insert, update, select on test.* to 'user1'@'localhost';
    
  • 給 user2 用戶分配所有權限,對所有數據庫的所有表

    grant all on *.* to 'user2'@'%';
    

撤銷用戶權限

基本語法格式

REVOKE 權限1, 權限2, ... ON 數據庫.表名;

關鍵字說明

關鍵字 說明
REVOKE...ON...FROM 撤銷授權的關鍵字
權限 用戶的權限,如 CREATE、ALTER、SELECT、INSERT、UPDATE 等,所有的權 限則使用 ALL
數據庫名.表名 對哪些數據庫的哪些表,如果要取消該用戶對所有數據庫和表的操作權限則可用表 示,如.*
'用戶名'@'主機名' 給哪個用戶撤銷

具體操作

  • 撤銷 user1 用戶對 test 數據庫所有表的操作的權限

    revoke all on test.* from 'user1'@'localhost';
    

查看用戶權限

基本語法格式

SHOW GRANTS FOR '用戶名'@'主機名';

具體操作

  • 查看 user1 用戶的權限

    SHOW GRANTS FOR 'user1'@'localhost';
    

刪除用戶

基本語法格式

DROP USER '用戶名'@'主機名';

具體操作

  • 刪除 user2

    drop user 'user2'@'%';
    

修改管理員密碼

基本語法格式

該語句是在控制台使用的,不是登錄MySQL里面使用的。

mysqladmin -u用戶名 -p password 新密碼
注意:需要在未登陸 MySQL 的情況下操作,新密碼不需要加上引號。

具體操作

將 root 管理員的新密碼改成 123456

第一步:cmd上(macOS在終端)輸入下面的語句

mysqladmin -uroot -p password 123456

第二步:輸入上面這條語句后,按回車,會提示輸入舊密碼,輸入舊密碼,再按回車就修改成功了。

備注:假如修改失敗,找不到mysqladmin命令,說明MySQL環境變量沒有配置好。自行查找相關資料配置環境變量。

修改普通用戶密碼

基本語法格式

該語句是要登錄MySQL才能使用的。

set password for '用戶名'@'主機名' = password('新密碼');
注意:需要在登陸 MySQL 的情況下操作,新密碼要加單引號。

具體操作

  • 將'user1'@'localhost'的密碼改成'666666'

    set password for 'user1'@'localhost' = password('666666');
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM