增加使用者的方法: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 參數列示新使用者的許可權範圍,即只能在指定的資料庫和表上使用自己的許可權;
<使用者> 引數指定新使用者的賬號,由使用者名稱和主機名構成;
IDENTIFIED BY 關鍵字用來設定密碼;
password 參數列示新使用者的密碼。
例 3
下面使用 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怎麼增加使用者的詳細內容,更多請關注TW511.COM其它相關文章!