ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MySQL学习Day17——用户与权限管理

2026/9/18 12:51:39 拓冰建站 浏览量
MySQL学习Day17——用户与权限管理

一、用户管理:

MySQL的用户可以分为普通用户root用户root用户是超级管理员,拥有所有的权限,包括创建用户、删除用户和修改用户的密码等。普通用户只拥有被授予的各种权限。MySQL提供了许多语句用来管理用户账号,MySQL数据库的安全性需要通过用户管理来保证。

1.登录MySQL服务器:

启动MySQL服务后,可以通过mysql命令来登录MySQL服务器,命令如下:

mysql -h hostnamelhostIP -P port -u username -p DatabaseName -e "SQL语句'
参数说明:
-h参数:后面接主机名或者主机IP,hostname为主机,hostlP为主机IP。
-P参数:后面接MySQL服务的端口,通过该参数连接到指定的端口。MySQL服务的默认端口是3306,不使用该参数时自动连接到3306端口,port为连接的端口号。
-u参数:后面接用户名,username为用户名。
-p参数:会提示输入密码。
DatabaseName参数:指明登录到哪一个数据库中。如果没有该参数,就会直接登录到MySQL数据库中,然后可以使用USE命令来选择数据库。
-e参数:后面可以直接加SQL语句。登录MySQL服务器以后即可执行这个SQL语句,然后退出MySQL服务器

2.创建用户:

在MySQL数据库中,官方推荐使用 CREATE USER语句创建新用户。MySQL8版本移除了PASSWORD加密方法,因此不再推荐使用INSERT语句直接操作MySQL中的user表来增加用户。使用CREATE USER语句来创建新用户时,必须拥有CREATE USER权限。每添加一个用户,CREATE USER语句会在MySQL.user表中添加一条新记录,但是新创建的账户没有任何权限。如果添加的账户已经存在,CREATE USER语句就会返回一个错误。

CREATE USER语句的基本语法形式如下:

CREATE USER 用户名 [IDENTIFIED BY'密码'][,用户名[IDENTIFIED BY'密码']];
参数说明:
1.用户名参数表示新建用户的账户,由用户(User)和主机名(Host)构成
2.“[]”表示可选,也就是说,可以指定用户登录时需要密码验证,也可以不指定密码验证,这样用户可以直接登录。
不过不指定密码的方式不安全,不推荐使用。如果指定密码值需要使用IDENTIFIED BY指定明文密码值。
3.CREATE USER语句可以同时创建多个用户

3.修改用户名(使用较少):

UPDATE mysql.user SET USER=新用户名 WHERE USER=原用户名;
FLUSH PRIVILEGES;

4.删除用户:

在MySQL数据库中,可以使用 DROP USER语句来删除普通用户,也可以直接在mysql.user表中删除用户。

(1)使用DROP方式删除(推荐):使用DROP USER语句来删除用户时,必须用于DROP USER权限。DROP USER语句的基本语法形式如下:

DROP USER user[,user]....;
其中,user参数是需要删除的用户,由用户的用户名(User)和主机名(Host)组成。DROP USER语句可以同时删除多个用户,各用户之间用逗号隔开。

(2)使用DELETE方式删除:可以使用DELETE语句直接将用户的信息从mysql.user表中删除,但必须拥有对mysql.user表的DELETE权限。DELETE语句的基本语法形式如下:

DELETE FROM mysql.user WHERE Host='hostname’ AND User='username;
Host字段和User字段是user表的联合主键,两个字段的值才能唯一确定一条记录,
执行完DELETE命令后要使用FLUSH命令来使用户生效:FLUSH PRIVILEGES;