在 MySQL 中使用 CREATE USER 语句创建用户
本文介绍了在 MySQL 中如何使用 CREATE USER 语句在数据库服务器中创建新用户。
用户是 MySQL 认证的基本元素。您只能通过正确的用户名和密码登录进 MySQL 数据库,然后授予用户不同的权限,以便让不同的用户可以进行不同的操作。
创建用户是精确控制权限的第一步。
在 MySQL 中,您可以使用 CREATE USER 语句在数据库服务器中创建一个新用户。
MySQL CREATE USER 语法
以下是 CREATE USER 语句的基本语法:
CREATE USER [IF NOT EXISTS] account_name
IDENTIFIED BY 'password';
在这个语法中:
-
在
CREATE USER关键字后指定帐户名称。帐户名称由两部分组成:username和hostname,以@符号分隔:username@hostnameusername是用户的名称。而hostname从用户连接到 MySQL 服务器的主机名。hostname帐户名称的部分是可选的。如果省略它,用户可以从任何主机连接。没有主机名的帐户名等效于:
username@%如果
username和hostname中包含空格或-等特殊字符,则需要将用户名和主机名分别按如下方式引用:'username'@'hostname'除了单引号 (
'),您还可以使用反引号 (``) 或双引号 (")。 -
在
IDENTIFIED BY关键字后指定用户的密码。 -
IF NOT EXISTS选项仅在新用户不存在时有条件地创建新用户。
请注意, CREATE USER 语句创建了一个没有任何权限的新用户。要向用户授予权限,请使用 GRANT 语句。
MySQL CREATE USER 实例
请按照如下步骤执行 MySQL CREATE USER 实例:
-
使用 mysql 客户端工具连接到 MySQL 服务器:
mysql -u root -p输入
root帐户的密码并按Enter:Enter password: ******** -
显示来自当前 MySQL 服务器的用户:
SELECT user FROM mysql.user;+------------------+ | user | +------------------+ | root | | test_role1 | | test_role2 | | testuser | | mysql.infoschema | | mysql.session | | mysql.sys | | root | +------------------+ -
创建一个名为
sqliz的新用户:CREATE user 'sqliz'@'%' IDENTIFIED by 'SqLiZ9879123!'; -
再次显示所有用户:
SELECT user FROM mysql.user;+------------------+ | user | +------------------+ | root | | test_role1 | | test_role2 | | testuser | | mysql.infoschema | | mysql.session | | mysql.sys | | root | | sqliz | +------------------+用户
sqliz已成功创建。 -
打开一个新的会话并以
sqliz用户身份登录 MySQL:mysql -u sqliz -p输入密码
sqliz并按下Enter:Enter password: ******** -
查看
sqliz可访问的数据库列表:SHOW DATABASES;以下是
sqliz可以访问的数据库列表:+--------------------+ | Database | +--------------------+ | information_schema | +--------------------+ -
转到用户
root的会话并创建一个新数据库,名为sqlizdb:CREATE DATABASE sqlizdb; -
使用
GRANT语句将数据库sqlizdb的所有权限授权给用户sqliz:GRANT ALL PRIVILEGES ON sqlizdb.* TO sqliz@'%'; -
进入 sqliz 的会话,显示数据库:
SHOW DATABASES;现在,
sqliz可以看到sqlizdb:+--------------------+ | Database | +--------------------+ | information_schema | | sqlizdb | +--------------------+ -
选择数据库
sqlizdb:USE sqlizdb;此后, 默认的数据库为:
sqlizdb。以后的所有操作都默认在此数据库中进行。 -
创建一个新表, 名为
test_table:CREATE TABLE test_table( id int AUTO_INCREMENT PRIMARY KEY, txt varchar(100) NOT NULL ); -
从
sqlizdb数据库中显示表:SHOW TABLES;用户
sqliz可以看到test_table表:+-------------------+ | Tables_in_sqlizdb | +-------------------+ | test_table | +-------------------+ -
在表
test_table中插入一行:INSERT INTO test_table(txt) VALUES('Hello World.'); -
从表
test_table中查询数据:SELECT * FROM test_table;这是输出:
+----+--------------+ | id | txt | +----+--------------+ | 1 | Hello World. | +----+--------------+
现在, 用户 sqliz 可以在 sqlizdb 数据库中做任何事情。
结论
在本文中,您学习了如何使用 MySQL CREATE USER 在数据库服务器中创建新用户:
- 使用有权限的用户创建一个新用户。
- 对新创建的用户授予合适的权限。