01_02_mysql10_用户与权限管理

用户与权限管理


学习再总结宋红康老师课程内容


1.用户管理


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

1.1登录MySQL服务器

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

sql 复制代码
mysql -h hostname|hostIP -P port -u username -p DatabaseName -e "SQL语句"

参数解释:

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

1.2创建用户...

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

sql 复制代码
CREATE USER 用户名 [IdENIFIED BY '密码'][,用户名 [IDENIFIED BY '密码']];

1.3修改用户...

修改用户名:

sql 复制代码

1.4删除用户...

在MySQL数据库中,可以使用DROP USER语句来删除普通用户,也可以直接在mysql.user表中删除用户。
方式1:使用DROP方式删除(推荐)
方式1:使用DELETE方式删除(不推荐)

1.5设置当前用户密码

适用于root用户修改自己的密码,以及普通用户登录后修改自己的密码。

root用户拥有很高的权限,因此必须保证root用户的密码安全。root用户可以通过多种方式来修改密码,使用ALTER USER修改用户密码是MySQL 官方推荐的方式。此外,也可以通过SET语句修改密码。由于MySQL8中已移除了PASSWORD()函数,因此不再使用UPDATE语句直接操作用户表修改密码。

旧的写法如下:

sql 复制代码
# 修改当前用户的密码:(MySQL5.7测试有效)
SET PASSWORD = PASSWORD('123456');

这里介绍推荐的写法:

1.使用ALTER USER命令来修改当前用户密码

用户可以使用ALTER命令来修改自身密码,如下语句代表修改当前登录用户的密码。基本语法如下:

sql 复制代码
ALTER USER USER()IDENTIFIED BY '新密码';

2.使用SET语句来修改当前密码

使用root用户登录MySQL后,可以使用SET语句来修改密码,具体SQL语句为:

sql 复制代码
SET PASSWORD='新密码';

该语句会自动将密码加密后再赋给当前用户。

1.6修改其他用户密码

root用户不仅可以修改自己的密码,还可以修改其他普通用户的密码。root用户登录MySQL服务器后,可以通过ALTER语句和SET语句来修改普通用户的密码。由于PASSWORD()函数已移除,因此使用UPDATE直接操作用户表的方式已不再使用。

1.使用ALTER语句来修改普通用户的密码

语法基本形式如下:

sql 复制代码
ALTER USER user [IDENTIFIED BY '新密码'][,user[IDENTIFIED BY '新密码']]...;

其中user参数表示新用户的账户,由用户名和主机名构成;"IDENTIFIED BY"关键字用来设置密码。

2.使用SET命令来修改普通用户密码

使用root用户登录到MySQL服务器后,可以使用SET语句来修改普通用户的密码。SET语句的代码如下:

sql 复制代码
SET PASSWORD FOR 'username'@'hostname'='new_password';

其中,username参数是普通用户的用户名;hostname参数是普通用户的主机名;new_password是新密码。

3.使用UPDATE语句修改普通用户的密码(不推荐)

使用root用户登录到MySQL服务器后,可以使用UPDATE语句修改MySQL数据库的user表的password字段,从而修改普通用户的密码。使用UPDATE语句修改用户密码的语法如下:

sql 复制代码
UPDATE MySQL.user SET authentication_string=PASSWORD("123456")
WHERE User = "username" AND Host = "hostname";

1.7MySQL8密码管理(了解)...

MySQL中记录使用过的历史密码,目前包含如下密码管理功能:

(1)密码过期:要求定期修改密码。

(2)密码重用限制:不允许使用旧密码。

(3)密码强度评估:要求使用高强度的密码。

1.密码过期策略
2.密码重用策略

2.权限管理


关于MySQL的权限简单的理解就是MySQL允许你做你权力以内的事情,不可以越界。比如只允许你执行SELECT操作,那么及你就不能执行UPDATE操作。只允许你从某台机器上连接MySQL,那么你就不能从除了那台机器以外的其他机器连接MySQL。

2.1权限列表...

MySQL的权限:

sql 复制代码
SHOW privilige;

2.2授予权限的原则

权限控制主要是出于安全因素因此需要遵循以下几个经验原则:

1、只授予能满足需要的最小权限,防止用户干坏事。

2、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。

3、为每个用户设置满足密码复杂度的密码。

4、定期清理不需要的用户,回收权限或者删除用户。

2.3授予权限...

给用户授权的方式有两种,赋不上通过把角色赋予用户给用户授权和直接给用户授权。

2.4查看权限...

2.5收回权限...

3.权限表


4.访问控制(了解)


5.角色管理


6.配置文件的使用


6.1配置文件格式

与在命令行中指定启动选项不同的是,配置文件中的启动选项

6.2启动命令和选项组

6.3特定MySQL版本的专用选项组

6.4同一个配置文件中多个组的优先级

6.5命令行和配置文件中启动项的区别

7.系统变量

相关推荐
静听山水6 分钟前
mysql语句执行过程
数据库·mysql
Q_w774244 分钟前
一个真实可用的登录界面!
javascript·mysql·php·html5·网站登录
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO2 小时前
MySQL事务
数据库·mysql
数据龙傲天3 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
engineer-gxd4 小时前
MySQL 表的操作
mysql
cyt涛4 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
看山还是山,看水还是。5 小时前
MySQL 管理
数据库·笔记·mysql·adb
momo小菜pa5 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke6 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
小宇成长录6 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份