創建用戶
基本語法格式
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');