Navicat 博客

2018 年 5 月 29 日,由 Robert Gravelle 撰写

第 1 部分:保护 Root 帐号

管理数据库用户是数据库管理员(DBA)的主要职责之一。协调组织中的用户访问数据库的方式通常需要执行许多单独的任务,包括添加新用户,阻止已离开组织的用户的访问权限以及帮助无法登录的用户。

MySQL 附带的 mysqladmin 命令行客户端,用于执行管理操作。你可以使用它来检查服务器的配置和当前状态,创建和删除数据库等。对于想要功能稍微复杂一点的 DBA,Navicat for MySQL 和 Navicat Premium 已包含管理 MySQL 用户所需的一切功能,因此你无需启动独立的命令窗口。在本系列中,我们将探讨如何在 Navicat 中执行常见的用户管理任务。本篇文章描述了三个默认的 MySQL 用户帐号以及 root 用户的安全性。

虽然我们在本篇文章中使用 Navicat Premium。但请记住,Navicat for MySQL 包含相同的功能,但是它专门针对 MySQL 而设。

默认用户帐号

用户管理功能可通过“用户”按钮访问。点击它将在“对象”选项卡显示 MySQL 连接的所有已注册用户。

上图显示了默认的用户帐号。在安装过程中,MySQL 会创建三个应被视为保留的用户帐号:

  • 'root'@'localhost:超级用户。此帐号具有所有权限,可以执行任何操作。

    ⦁ 严格来说,此帐号名不会被保留。因为你可以将 root 帐号重命名为其他帐号,以避免暴露具有众所周知名称的高度特权的默认名帐号。在生产环境中,你是应该要重新命名 root 帐号的!

  • 'mysql.sys'@'localhost':用作 sys 模式对象的 DEFINER。使用 mysql.sys 帐号可以避免 DBA 重命名或移除 root 帐号时出现的问题。此帐号已锁定,因此无法用于客户端连接。

  • 'mysql.session'@'localhost':由插件内部使用来访问服务器。 此帐户已锁定,因此无法用于客户端连接。

编辑用户详细信息

如果我们想要查看和/或修改用户的详细信息,我们可以双击它或在“对象”选项卡中高亮显示它,然后点击对象工具栏上的“编辑用户”按钮。这将打开该用户的编辑器选项卡。它包含五个选项卡,分别为“常规”、“高级”、“服务器权限”、“权限”和“SQL 预览”。我们将在下一篇文章中更详细地介绍这些选项卡,但是现在,让我们先看看如何更改“常规”选项卡上的某些数据以保护 root 帐户。

  • 众所周知,“root”帐号是超级用户。因此,我们的第一个动作应该是将其更改为不太直观的名,例如“secure_admin_99”。添加数字使得猜测更加困难。

  • 选择 sha256_password 插件。

    在自版本 5.5 以来的所有 MySQL 服务器版本中,默认的密码机制是使用 mysql_native_password 身份验证插件(默认情况下已启用)。此机制利用 SHA1 散列。虽然这个算法在 MySQL 4.1 时代被认为是安全的,但现在已经知道它可能在几年内成为可利用的安全弱点。

    MySQL 服务器 5.6 中引入了 sha256_password 插件,提供了专注于密码存储的额外安全性。它通过解决使 mysql_native_password 易受攻击的两个关键元素来实现这一点:哈希计算变得更加昂贵或耗时,以及输出是随机的。此外,使用更强大的 SHA-256 算法可以消除对易受攻击的 SHA1 算法的依赖性。

  • 提供一个强密码。

    强密码应该难以被猜测或破解。一个好密码有以下特征:

    • 长度至少有 8 个字符。
    • 不得包含你的用户名、真实姓名或公司名。
    • 不得包含完整单词。
    • 与以前的密码明显不同。
    • 含有大写字母、小写字母、数字和符号。

  • 提供一个“密码过期策略”。

    通过指定时间间隔,我们可以让 MySQL 提示用户在设置的天数之后更改其密码,例如 90 天。

这是含有已更新字段的“常规”选项卡:

点击“保存”按钮以更新帐号设置。

预告

在下一部分中,我们将学习如何创建新用户并分配权限。

Navicat 文章
频道条目
分享
文章归档