10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 42.0 mb
PDF (A4)- 42.1 mb
手册页(TGZ)- 267.1 kb
手册页(Zip)- 376.8 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

6.1.2.1终端用户密码安全指引

MySQL用户应该使用以下指南来确保密码安全。

当您运行客户端程序连接到MySQL服务器时,不建议指定密码的方式将其暴露给其他用户。这里列出了运行客户端程序时可用于指定密码的方法,以及每种方法的风险评估。简而言之,最安全的方法是让客户端程序提示输入密码,或者在受适当保护的选项文件中指定密码。

  • 使用mysql_config_editor实用程序,它使您能够将身份验证凭据存储在名为.mylogin.cnf.该文件可以被MySQL客户端程序读取,以获得连接MySQL服务器的身份验证凭据。看到mysql_config_editor - MySQL配置实用程序

  • 使用一个——密码=密码- p密码选项。例如:

    $> mysql -u Francis -pfrankdb_name
    警告

    这很方便但是不安全.在某些系统上,您的密码对系统状态程序可见,例如ps其他用户可以调用它来显示命令行。MySQL客户端通常在初始化顺序中用零覆盖命令行密码参数。然而,仍然有一个短暂的间隔,在此期间,值是可见的。此外,在某些系统上,这种覆盖策略是无效的,密码仍然可见ps.(SystemV Unix系统和其他系统可能会遇到这个问题。)

    如果您的操作环境设置为在终端窗口的标题栏中显示当前命令,则只要该命令正在运行,密码就仍然可见,即使该命令已滚动出窗口内容区域的视图。

  • 使用——密码- p选项,没有指定密码值。在这种情况下,客户端程序交互地请求密码:

    $> mysql -u Francis -pdb_name输入密码:********

    字符表示输入密码的位置。输入密码时不显示。

    以这种方式输入密码比在命令行上指定密码更安全,因为其他用户不可见密码。但是,这种输入密码的方法只适用于交互式运行的程序。如果您希望从非交互式运行的脚本调用客户端,则没有机会从键盘输入密码。在某些系统上,您甚至可能发现脚本的第一行被读取并(错误地)解释为您的密码。

  • 将密码存储在一个选项文件中。例如,在Unix上,您可以在(客户端)部份.my.cnf在主目录下的文件:

    [客户]密码=密码

    为了保证密码安全,除了你自己,任何人都不能访问该文件。为此,请将文件访问模式设置为400600.例如:

    $> chmod 600 .my.cnf

    若要从命令行中命名包含密码的特定选项文件,请使用——defaults-file =file_name选项,file_name文件的完整路径名称。例如:

    $> mysql——defaults-file=/home/francis/mysql-opts

    第4.2.2.2节“使用选项文件”,更详细地讨论了选项文件。

在Unix上,mysql客户端将已执行语句的记录写入历史文件(请参阅章节4.5.1.3,“mysql客户端日志”).默认情况下,该文件被命名.mysql_history并在您的主目录中创建。密码可以在SQL语句中以纯文本形式编写,例如创建用户而且改变用户,因此如果您使用这些语句,它们将被记录在历史文件中。为保证该文件的安全,请使用限制性访问模式,方法与前面描述的方法相同.my.cnf文件。

如果您的命令解释器维护了历史记录,则保存命令的任何文件都包含在命令行上输入的MySQL密码。例如,bash使用~ / . bash_history.任何这样的文件都应该具有限制性的访问模式。