增加使用者的方法:1、使用「CREATE USER 使用者 IDENTIFIED BY '密碼';」語句;2、使用「GRANT priv_type ON database.table TO 使用者 IDENTIFIED BY '密碼';」語句。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
MySQL 在安裝時,會預設建立一個名為 root 的用戶,該用戶擁有超級權限,可以控制整個 MySQL 伺服器。
在對MySQL 的日常管理和操作中,為了避免有人惡意使用root 用戶控制資料庫,我們通常會創建一些具有適當權限的用戶,盡可能地不用或少用root 用戶登入系統,以此來確保資料的安全存取。
MySQL 提供了以下 3 種方法來建立使用者。
使用CREATE USER 語句建立使用者
在mysql.user 表中新增使用者
使用GRANT 語句建立使用者
以下根據實例詳細講解這3 種方法。
1. 使用CREATE USER語句建立使用者
#可以使用 CREATE USER 語句來建立 MySQL 用戶,並設定對應的密碼。其基本語法格式如下:
CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]
參數說明如下:
1) 使用者
指定建立使用者帳號,格式為user_name'@'host_name 。這裡的user_name是使用者名,host_name為主機名,也就是使用者連線 MySQL 時所用主機的名字。如果在建立的過程中,只給了使用者名,而沒指定主機名,那麼主機名稱預設為“%”,表示一組主機,即對所有主機開放權限。
3) IDENTIFIED BY子句
用於指定使用者密碼。新使用者可以沒有初始密碼,若使用者不設密碼,可省略此子句。
2) PASSWORD 'password'
PASSWORD 表示使用雜湊值設定密碼,該參數可選。如果密碼是一個普通的字串,則不需要使用 PASSWORD 關鍵字。 'password' 表示使用者登入時所使用的密碼,需要用單引號括起來。
使用 CREATE USER 語句時應注意以下幾點:
#CREATE USER 語句可以不指定初始密碼。但是從安全的角度來說,不建議這種做法。
使用 CREATE USER 語句必須擁有 mysql 資料庫的 INSERT 權限或全域 CREATE USER 權限。
使用 CREATE USER 語句建立一個使用者後,MySQL 會在 mysql 資料庫的 user 表中新增一筆新記錄。
CREATE USER 語句可以同時建立多個用戶,多個使用者以逗號隔開。
新建立的使用者擁有的權限很少,它們只能執行不需要權限的操作。如登入 MySQL、使用 SHOW 語句查詢所有儲存引擎和字元集的清單等。如果兩個用戶的用戶名相同,但主機名稱不同,MySQL 會將它們視為兩個用戶,並允許為這兩個用戶分配不同的權限集合。
範例 1
使用 CREATE USER 建立一個用戶,用戶名是 test1,密碼是 test1,主機名稱是 localhost。 SQL 語句和執行程序如下。
mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1'; Query OK, 1 rows affected (0.06 sec)
結果顯示,建立 test1 使用者成功。
在實際應用程式中,我們應避免明文指定密碼,可以透過 PASSWORD 關鍵字使用密碼的雜湊值設定密碼。
範例2
在MySQL 中,可以使用password() 函數來取得密碼的雜湊值,查看test1 雜湊值的SQL 語句和執行程序如下:
mysql> SELECT password('test1'); +-------------------------------------------+ | password('test1') | +-------------------------------------------+ | *06C0BF5B64ECE2F648B5F048A71903906BA08E5C | +-------------------------------------------+ 1 row in set, 1 warning (0.00 sec)
「*06C0BF5B64ECE2F648B5F048A71903906BA08E5C」就是test1 的雜湊。以下建立使用者 test1,SQL 語句和執行過程如下:
mysql> CREATE USER 'test1'@'localhost'IDENTIFIED BY PASSWORD '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C'; Query OK, 0 rows affected, 1 warning (0.00 sec)
執行成功後就可以使用密碼「test1」登入了。
2. 使用GRANT語句新使用者
#雖然 CREATE USER 可以建立普通用戶,但這種方式不方便授予使用者權限。於是 MySQL 提供了 GRANT 語句。
使用GRANT 語句建立使用者的基本語法形式如下:
GRANT priv_type ON database.table TO <用户> [IDENTIFIED BY [PASSWORD] 'password']
其中:
##priv_type 參數表示新使用者的權限;
database.table 參數表示新使用者的權限範圍,即只能在指定的資料庫和表上使用自己的權限;
<使用者> 參數指定新使用者的帳號,由使用者名稱和主機名稱構成;
關鍵字用來設定密碼;
參數表示新使用者的密碼。
下面使用 GRANT 語句建立名為 test3 的用戶,主機名稱為 localhost,密碼為 test3。該使用者對所有資料庫的所有表都有 SELECT 權限。 SQL 語句與執行程式如下:
mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3'; Query OK, 0 rows affected, 1 warning (0.01 sec)
其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。
技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。教程后面会详细介绍如何使用 GRANT 语句修改密码、更改权限。
【相关推荐:mysql视频教程】
以上是mysql怎麼增加用戶的詳細內容。更多資訊請關注PHP中文網其他相關文章!