MySQL安全部署指南/创建用户帐户

第13章创建用户帐户

本节介绍如何创建用户帐户。它演示了配置密码到期策略,使用安全相关创建用户选项,授予用户权限和验证用户权限和身份验证。

创建了两个用户帐户:User1.user2.。这User1.帐户定义为具有需要加密连接的SSL / TLS选项。这user2.帐户在没有SSL / TLS选项的情况下定义(不需要)因此它可以用于通过未加密的连接与服务器展示基于RSA密钥对的密码交换。

  1. 定义全局自动密码到期策略。在以下步骤中创建的用户帐户使用由此定义的策略default_password_lifetime.系统变量。默认设置为0,禁用自动密码到期。要使密码自动以全局定义的间隔自动过期,例如每120天,添加与此类似的条目[mysqld]Option组在MySQL配置文件中(/etc/my.cnf.):

    default_password_lifetime = 120.

    重新启动服务器以应用配置更改:

    shell> systemctl重新启动mysqld
  2. 以root身份登录。

    shell> cd / usr / local / mysql shell> bin / mysql -u root -p输入密码:(在此处输入root密码)
  3. 创建用户帐户。以下语句创建名为的用户帐户'user1'@'203.0.113.11.''user1'@'203.0.113.12., 在哪里203.0.113.11.203.0.113.12.是客户端主机的IP地址。该语句包括用于启用身份验证的安全相关选项,定义SSL / TSL要求,限制服务器资源使用情况和管理密码到期。

    mysql>创建用户'user1'@'203.0.113.11.'用Sha256_password识别'密码'要求x509使用max_user_connections 3密码过期默认值;
    mysql>创建用户'user2'@'203.0.113.12.'用Sha256_password识别'密码'需要none使用max_user_connections 3密码到期默认值;

    创建用户声明选项:

    • 用'sha256_password识别'密码'

      将帐户身份验证插件设置为SHA256_PASSWORD.,通过CLEARTEXT密码哈希的插件值,并存储结果mysql.user.帐户行。

      笔记

      密码指定的值必须符合由此启用的密码策略validate_password.插入。密码策略要求密码长度为至少8个字符,包含至少1个数字字符,1个小写字符,1个大写字符和1个特殊(nonalphanumeric)字符。看第6章,安装MySQL密码验证插件

      有关更多信息,请参阅创建用户身份验证选项

    • 要求X509.

      此SSL / TLS选项仅用于该选项User1.帐户。

      除了基于用户名和凭据的常规身份验证之外,MySQL还可以检查X509证书属性。可用的SSL / TSL选项包括SSL.X509.发行人主题, 和密码。这创建用户陈述User1.用来X509.选项,要求客户提供有效证书,而是确切的证书,发行人和主题无关紧要。唯一的要求是,应该可以使用其中一个CA证书验证其签名。用于X509.证书始终暗示加密,因此不需要指定SSL.选项。

      有关更多信息,请参阅创建用户SSL / TLS选项

    • 不需要

      表示账户没有TLS.或者X509.要求。如果用户名和密码有效,则允许未加密的连接。如果客户端具有正确的证书和密钥文件,则可以在客户端使用,在客户端中使用加密连接。没有任何默认情况下是否没有SSL相关的要求指定选项。

      有关更多信息,请参阅创建用户SSL / TLS选项

    • max_user_connections 3.

      限制帐户的最大同时连接数。如果数字为0(默认值),则服务器确定从全局值的帐户的同时连接的数量max_user_connections.系统变量。max_user_connections 3.意味着该帐户最多可以与服务器的3个同时连接。

      这里不使用的其他资源限制选项包括max_queries_per_hour.max_updates_per_hour., 和max_connections_per_hour.。有关更多信息,请参阅创建用户资源限制选项

    • 密码过期默认值

      应用由此定义的全局自动密码过期策略default_password_lifetime.系统变量。在较早的一步中,default_password_lifetime.设置为120,以便密码自动过期每120天。

      其他密码过期选项包括密码过期密码过期间隔, 和密码从不到期。有关更多信息,请参阅创建用户密码管理选项

  4. 授予用户权限。以下陈述授予显示数据库特权到User1.user2.账户:

    mysql> grant显示数据库*。*到'user1'@'203.0.113.11';
    mysql> grant显示数据库*。*到'user2'@'203.0.113.12';

    有关授予权限的更多信息,请参阅授予声明

  5. 要验证向用户帐户授予的权限,请发出a展示补助金陈述。例如:

    mysql>显示'user1''203.0.113.11'的补助金;+ ------------------------------------------------------------------------ + |USER1GRANTS @ 2011.113.11 |+ ------------------------------------------------------------------------ + |Grant Show数据库*。*到'user1'@'203.0.113.11'|+ ---------------------------------------------------------------------------
  6. 要验证帐户是否使用了预期的身份验证插件,请发出此查询:

    MySQL>选择用户,从MySQL.User中的插件,其中用户('用户%')\ g ***************************** 1。行***************************用户:USER1插件:SHA256_PASSWORD *************************** 2.行***************************用户:USER2插件:SHA256_PASSWORD