28. 安全管理

1. 访问控制

  1. MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权,既不能多也不能少

2. 管理用户

  1. MySQL用户账号和信息存储在名为mysql的MySQL数据库中

    1. img
    2. img
    3. mysql数据库有一个名为user的表,它包含所有用户账号。user表有一个名为user的列,它存储用户登录名。新安装的服务器可能只有一个用户(如这里所示),过去建立的服务器可能具有很多用户。

2.1. 创建用户账号

  1. 为了创建一个新用户账号,使用CREATE USER语句,

    1. img
  2. 指定散列口令IDENTIFIED BY指定的口令为纯文本,MySQL将在保存到user表之前对其进行加密。为了作为散列值指定口令,使用IDENTIFIED BY PASSWORD。

  3. 为重新命名一个用户账号,使用RENAME USER语句,

    1. img

2.2. 删除用户账号

  1. 为了删除一个用户账号(以及相关的权限),使用DROP USER语句,

    1. img

2.3. 设置访问权限

  1. 为看到赋予用户账号的权限,使用SHOW GRANTS FOR,

    1. img
    2. 输出结果显示用户bforta有一个权限USAGE ON .。USAGE表示根本没有权限
  2. GRANT的用法

    1. img
    2. 此GRANT允许用户在crashcourse.*(crashcourse数据库的所有表)上使用SELECT
    3. 具有只读访问权限
  3. SHOW GRANTS反映这个更改

    1. img
  4. GRANT的反操作为REVOKE,用它来撤销特定的权限

    1. img
  5. GRANT和REVOKE可在几个层次上控制访问权限:

    1. 整个服务器,使用GRANT ALL和REVOKE ALL
    2. 整个数据库,使用ON database.*;
    3. 特定的表,使用ON database.table
    4. 特定的列
    5. 特定的存储过程。
  6. 可以授予或撤销的每个权限

    1. img
    2. img
  7. 简化多次授权可通过列出各权限并用逗号分隔,将多条GRANT语句串在一起,如下所示:

    1. img

2.4. 更改口令

  1. 为了更改用户口令,可使用SET PASSWORD语句。

    1. img
  2. SET PASSWORD还可以用来设置你自己的口令:

    1. img

28. 安全管理
http://binbo-zappy.github.io/2024/11/27/mysql_bzbh/28-安全管理/
作者
Binbo
发布于
2024年11月27日
许可协议