第二十八章 安全管理
mysql服务器安全基础:用户应该对他们需要的数据具有适当访问权,既不能多也不能少。
通过保证用户不能执行他们不应该执行的语句,访问控制有助于避免这些情况的发生。
管理用户
mysql用户账号和信息存储在名为mysql的mysql数据库中。
获取所有用户账号列表
use mysql;
select user from user;
创建账号
# 使用create user
create user ben identified by 'p@$$w0rd';
# 重命名一个用户账号
rename user ben to bforta;
# 删除用户账号
drop user bforta;
# 查看赋予用户账号的权限
show grants for bforta;
# 允许用户在(crashcourse数据库的所有表)上使用SELECT,只读
grant select on crashcourse.* to bforta;
# 重新查看赋予用户账号的权限,发生变化
show grants for bforta;
# 撤销特定的权限
revoke select on crashcourse.* from bforta;
# 简化多次授权
grant select,insert on crashcourse.* to bforta;
这样表示没有任何权限。
更改用户密码
-- 更改口令,新口令必须传递到Password()函数进行加密。
set password for bforta = 'n3w p@$$w0rd'; # 原来课本中使用的password()加密函数,在8.0版本中已经移除
#password() :This function was removed in MySQL 8.0.11.
-- 如果不指定用户名,直接修改当前登录用户的口令
set password = 'n3w p@$$w0rd';