28. 安全管理
1. 访问控制
- MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少
2. 管理用户
MySQL用户账号和信息存储在名为mysql的MySQL数据库中
- mysql数据库有一个名为user的表,它包含所有用户账号。user表有一个名为user的列,它存储用户登录名。新安装的服务器可能只有一个用户(如这里所示),过去建立的服务器可能具有很多用户。
2.1. 创建用户账号
为了创建一个新用户账号,使用CREATE USER语句,
指定散列口令IDENTIFIED BY指定的口令为纯文本,MySQL将在保存到user表之前对其进行加密。为了作为散列值指定口令,使用IDENTIFIED BY PASSWORD。
为重新命名一个用户账号,使用RENAME USER语句,
2.2. 删除用户账号
为了删除一个用户账号(以及相关的权限),使用DROP USER语句,
2.3. 设置访问权限
为看到赋予用户账号的权限,使用SHOW GRANTS FOR,
- 输出结果显示用户bforta有一个权限USAGE ON .。USAGE表示根本没有权限
GRANT的用法
- 此GRANT允许用户在crashcourse.*(crashcourse数据库的所有表)上使用SELECT
- 具有只读访问权限
SHOW GRANTS反映这个更改
GRANT的反操作为REVOKE,用它来撤销特定的权限
GRANT和REVOKE可在几个层次上控制访问权限:
- 整个服务器,使用GRANT ALL和REVOKE ALL
- 整个数据库,使用ON database.*;
- 特定的表,使用ON database.table
- 特定的列
- 特定的存储过程。
可以授予或撤销的每个权限
简化多次授权可通过列出各权限并用逗号分隔,将多条GRANT语句串在一起,如下所示:
2.4. 更改口令
为了更改用户口令,可使用SET PASSWORD语句。
SET PASSWORD还可以用来设置你自己的口令:
28. 安全管理
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/28-安全管理/