MySQL CREATE USER 命令详解

MySQL CREATE USER 命令详解

MySQL是一个广泛使用的关系型数据库系统,该系统提供了多种命令和功能,其中CREATE USER命令可以用来创建新的用户并授予其相应的权限,本文将对该命令进行详细介绍。

阅读更多:MySQL 教程

语法

CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;

  • username:指定要创建的用户名,可以是任意合法的字符,但不能超过16个字符。
  • host:指定限制访问该用户的主机,可以使用通配符,例如 ‘%’表示任意主机,’localhost’表示本地主机。
  • password:指定用户的登录密码,可以是任意合法的字符,但长度不能超过32个字符。

注意:

  • 在一个MySQL服务器中,用户名与主机的组合必须唯一,如果存在相同的则会出现错误。
  • 使用通配符’%’可以允许该用户从任何远程主机访问MySQL服务器,建议仅在安全性较高的环境下使用。
  • 如果没有指定访问限制主机,则该用户只能从本地主机访问MySQL服务器。

示例

  1. 创建一个用户名为’alice’,密码为’123456’,限制访问该用户的主机为本地主机的用户。
CREATE USER 'alice'@'localhost' IDENTIFIED BY '123456';
Mysql
  1. 创建一个用户名为’bob’,密码为’password’,允许从任意远程主机访问MySQL服务器的用户。
CREATE USER 'bob'@'%' IDENTIFIED BY 'password';
Mysql

权限分配

创建用户仅能让其登录MySQL服务器,如果想使其具备更多的权限,需要通过GRANT命令进行授权。用户被授权的权限越多,其所能执行的操作也就越多。

语法:

GRANT privileges ON database.table TO 'username'@'host';
Mysql
  • privileges:指定授权的权限,可以是ALL,SELECT,INSERT,UPDATE,DELETE等多种权限。
  • database:指定授权的数据库名,可以使用通配符,例如’*’表示所有数据库。
  • table:指定授权的数据表名,可以使用通配符,例如’*’表示所有数据表。
  • username:指定被授权的用户名。
  • host:指定被授权的主机。

举例:

  1. 授予用户’alice’对所有数据库的SELECT权限。
GRANT SELECT ON *.* TO 'alice'@'localhost';
Mysql
  1. 授予用户’bob’对指定数据表的SELECT和INSERT权限。
GRANT SELECT,INSERT ON sample_db.sample_table TO 'bob'@'%';
Mysql

示例

  1. 创建一个用户名为’jack’,密码为’abcd1234’,并赋予其访问SAMPLE数据库的SELECT权限和对数据表SAMPLE_TABLE的INSERT权限。
CREATE USER 'jack'@'localhost' IDENTIFIED BY 'abcd1234';
GRANT SELECT ON sample.* TO 'jack'@'localhost';
GRANT INSERT ON sample.sample_table TO 'jack'@'localhost';
Mysql

撤销权限

在授权用户时,如果想要撤销已授予的权限,只需使用REVOKE命令即可。

语法:

REVOKE privileges ON database.table FROM 'username'@'host';
Mysql
  • privileges:指定要撤销的权限。
  • database:指定要撤销权限的数据表名或数据库名。
  • username:指定被授权的用户名。
  • host:指定被授权的主机。

举例:

  1. 撤销用户’alice’对所有数据库的SELECT权限。
REVOKE SELECT ON *.* FROM 'alice'@'localhost';
Mysql
  1. 撤销用户’bob’对数据表’SAMPLE_TABLE’的SELECT和INSERT权限。
REVOKE SELECT,INSERT ON sampe_db.sample_table FROM 'bob'@'%';
Mysql

示例

  1. 向用户’jack’授予SELECT和INSERT权限并在后来将INSERT权限撤销。
CREATE USER 'jack'@'localhost' IDENTIFIED BY 'abcd1234';
GRANT SELECT,INSERT ON sample.* TO 'jack'@'localhost';
# 撤销INSERT权限
REVOKE INSERT ON sample.* FROM 'jack'@'localhost';
Mysql

总结

通过本文的介绍,我们可以了解到MySQL中CREATE USER命令的基本语法和使用方法,以及如何通过GRANT和REVOKE命令授予或撤销用户的权限。在实际应用中,合理运用这些命令可以为数据管理带来便利和安全性保证。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册