1. 程式人生 > 其它 >MySQL修改使用者(RENAME USER)/刪除使用者(DROP/DELETE USER)

MySQL修改使用者(RENAME USER)/刪除使用者(DROP/DELETE USER)

MySQL中,我們可以使用RENAME USER語句修改一個或多個已經存在的使用者賬號。

語法格式如下:

RENAME USER <舊使用者> TO <新使用者>

其中:

  • <舊使用者>:系統中已經存在的 MySQL 使用者賬號。
  • <新使用者>:新的 MySQL 使用者賬號。

使用 RENAME USER 語句時應注意以下幾點:

  • RENAME USER 語句用於對原有的 MySQL 使用者進行重新命名。
  • 若系統中舊賬戶不存在或者新賬戶已存在,該語句執行時會出現錯誤。
  • 使用 RENAME USER 語句,必須擁有 mysql 資料庫的 UPDATE 許可權或全域性 CREATE USER 許可權

例 1

使用 RENAME USER 語句將使用者名稱 test1 修改為 testUser1,主機是 localhost。SQL 語句和執行過程如下。

mysql> RENAME USER 'test1'@'localhost'
    -> TO 'testUser1'@'localhost';
Query OK, 0 rows affected (0.03 sec)

在 cmd 命令列工具中,使用 testUser1 使用者登入資料庫伺服器,如下所示。

C:\Users\USER>mysql -h localhost -u testUser1 -p
Enter password: 
***** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.20-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type
'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL刪除使用者(DROP/DELETE USER)

在 MySQL 資料庫中,可以使用 DROP USER 語句刪除使用者,也可以直接在 mysql.user 表中刪除使用者以及相關許可權。

1. 使用 DROP USER 語句刪除普通使用者

使用 DROP USER 語句刪除使用者的語法格式如下:

DROP USER <使用者1> [ , <使用者2> ]…

其中,使用者用來指定需要刪除的使用者賬號。

使用 DROP USER 語句應注意以下幾點:

(1)DROP USER 語句可用於刪除一個或多個使用者,並撤銷其許可權。

(2)使用 DROP USER 語句必須擁有 mysql資料庫的 DELETE 許可權或全域性 CREATE USER 許可權。

(3)在 DROP USER 語句的使用中,若沒有明確地給出賬戶的主機名,則該主機名預設為“%”

注意:使用者的刪除不會影響他們之前所建立的表、索引或其他資料庫物件,因為 MySQL 並不會記錄是誰建立了這些物件。

例 1

下面使用 DROP USER 語句刪除使用者'test1@'localhost'。SQL 語句和執行過程如下。

mysql> DROP USER 'test1'@'localhost';
Query OK, 0 rows affected (0.00 sec)

在 cmd 命令列工具中,使用 test1 使用者登入資料庫伺服器,發現登入失敗,說明使用者已經刪除,如下所示。

C:\Users\USER>mysql -h localhost -u test1 -p
Enter password: ****
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using  password: YES)

2. 使用DELETE語句刪除普通使用者

可以使用 DELETE 語句直接刪除 mysql.user 表中相應的使用者資訊,但必須擁有 mysql.user 表的 DELETE 許可權。其基本語法格式如下:

DELETE FROM mysql.user WHERE Host='hostname' AND User='username';

Host 和 User 這兩個欄位都是 mysql.user 表的主鍵。因此,需要兩個欄位的值才能確定一條記錄。

例 2

下面使用 DELETE 語句刪除使用者'test2'@'localhost'。SQL 語句和執行過程如下所示。

DELETE FROM mysql.user WHERE Host='localhost'AND User='test2';
Query OK, 1 rows affected (0.00 sec)

結果顯示刪除成功。可以使用 SELETE 語句查詢 mysql.user 表,以確定該使用者是否已經成功刪除。