当前位置:首页 > 行业动态 > 正文

如何在MySQL数据库中创建新用户?

要新建一个 MySQL 数据库用户,可以使用以下 SQL 语句:,,“ sql,CREATE USER '新用户名'@'localhost' IDENTIFIED BY '密码';,

MySQL是一个广泛使用的开源关系数据库管理系统,它支持多种操作系统和编程语言,用户管理是MySQL数据库管理中的一个重要方面,包括创建新用户、授予权限和管理用户等操作,下面将详细介绍如何在MySQL中新建用户:

如何在MySQL数据库中创建新用户?  第1张

MySQL 新建用户

1、使用CREATE USER 语句

语法

     CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明

username:你将创建的用户名。

host:指定该用户在哪个主机上可以登录,如果是本地用户可用localhost,如果允许从任意远程主机登录,可以使用通配符%

password:该用户的登录密码,可以为空(即无需密码登录)。

例子

     CREATE USER 'dbadmin'@'localhost' IDENTIFIED BY 'pwd123';
     CREATE USER 'dbadmin'@'192.168.1.100' IDENTIFIED BY 'pwd123';
     CREATE USER 'superadmin'@'%' IDENTIFIED BY 'mypassword';

2、查看用户帐户的权限

语法

     SHOW GRANTS FOR 'username'@'host';

例子

     SHOW GRANTS FOR 'dbadmin'@'localhost';

结果

mysql> SHOW GRANTS FOR 'dbadmin'@'localhost';
     ++
     | Grants for dbadmin@localhost               |
     ++
     | GRANT USAGE ON *.* TO 'dbadmin'@'localhost'|
     ++

解释:上述结果表明,dbadmin用户帐户只能登录到数据库服务器,没有其他权限。

3、授权

语法

     GRANT privileges ON databasename.tablename TO 'username'@'host';

说明

privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有权限则使用ALL。

databasename:数据库名。

tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示。

例子

     GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
     GRANT ALL ON *.* TO 'pig'@'%';

4、设置与更改用户密码

语法

     SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

例子

     SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

5、撤销用户权限

语法

     REVOKE privilege ON databasename.tablename FROM 'username'@'host';

例子

     REVOKE SELECT ON *.* FROM 'pig'@'%';

6、删除用户

语法

     DROP USER 'username'@'host';

例子

     DROP USER 'pig'@'%';

相关问答FAQs

Q1: 如何创建一个可以从任何主机连接的用户?

A1: 你可以使用通配符%来允许用户从任何主机连接。

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'mypassword';

这将创建一个名为remote_user的用户,该用户可以从任何主机连接到MySQL服务器。

Q2: 如何授予一个用户所有的数据库和表的权限?

A2: 你可以使用ALL PRIVILEGES关键字来授予用户所有的权限。

GRANT ALL PRIVILEGES ON *.* TO 'username'@'host' WITH GRANT OPTION;

这将授予username用户对host上的所有数据库和表的所有权限,并且该用户还可以将这些权限授予其他用户。

序号 字段名 数据类型 描述 示例值
1 user VARCHAR(50) 用户名 new_user1
2 password VARCHAR(255) 密码 P@ssw0rd123
3 host VARCHAR(255) 允许访问的主机地址 %
4 db VARCHAR(255) 可访问的数据库名 my_database
5 select_priv ENUM(‘N’,’Y’) 是否具有SELECT权限 Y
6 insert_priv ENUM(‘N’,’Y’) 是否具有INSERT权限 Y
7 update_priv ENUM(‘N’,’Y’) 是否具有UPDATE权限 Y
8 delete_priv ENUM(‘N’,’Y’) 是否具有DELETE权限 Y
9 create_priv ENUM(‘N’,’Y’) 是否具有CREATE权限 Y
10 drop_priv ENUM(‘N’,’Y’) 是否具有DROP权限 Y
11 reload_priv ENUM(‘N’,’Y’) 是否具有RELOAD权限 Y
12 shutdown_priv ENUM(‘N’,’Y’) 是否具有SHUTDOWN权限 Y
13 process_priv ENUM(‘N’,’Y’) 是否具有PROCESS权限 Y
14 file_priv ENUM(‘N’,’Y’) 是否具有FILE权限 Y
15 grant_priv ENUM(‘N’,’Y’) 是否具有GRANT权限 Y
16 references_priv ENUM(‘N’,’Y’) 是否具有REFERENCES权限 Y
17 index_priv ENUM(‘N’,’Y’) 是否具有INDEX权限 Y
18 alter_priv ENUM(‘N’,’Y’) 是否具有ALTER权限 Y
19 show_db_priv ENUM(‘N’,’Y’) 是否具有SHOW DATABASES权限 Y
20 super_priv ENUM(‘N’,’Y’) 是否具有SUPER权限 Y
21 create_tmp_table_priv ENUM(‘N’,’Y’) 是否具有CREATE TEMPORARY TABLES权限 Y
22 lock_tables_priv ENUM(‘N’,’Y’) 是否具有LOCK TABLES权限 Y
23 execute_priv ENUM(‘N’,’Y’) 是否具有EXECUTE权限 Y
24 repl_slave_priv ENUM(‘N’,’Y’) 是否具有REPLICATION SLAVE权限 Y
25 repl_client_priv ENUM(‘N’,’Y’) 是否具有REPLICATION CLIENT权限 Y
26 create_view_priv ENUM(‘N’,’Y’) 是否具有CREATE VIEW权限 Y
27 show_view_priv ENUM(‘N’,’Y’) 是否具有SHOW VIEW权限 Y
28 create_routine_priv ENUM(‘N’,’Y’) 是否具有CREATE ROUTINE权限 Y
29 alter_routine_priv ENUM(‘N’,’Y’) 是否具有ALTER ROUTINE权限 Y
30 create_user_priv ENUM(‘N’,’Y’) 是否具有CREATE USER权限 Y
0