10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(邮政编码)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

6.1.3提高MySQL的安全性

当你连接到MySQL服务器时,你应该使用密码。密码不是通过连接以明文形式传输的。

所有其他信息都以文本的形式传输,任何能够观看连接的人都可以阅读。如果客户端和服务器之间的连接通过一个不受信任的网络,并且您担心这个问题,那么您可以使用压缩协议使通信更加难以破译。您还可以使用MySQL的内部SSL支持使连接更加安全。看到第6.3节“使用加密连接”.或者,使用SSH在MySQL服务器和MySQL客户端之间获得一个加密的TCP/IP连接。您可以在以下网站找到一个开源SSH客户端http://www.openssh.org/,以及开放源码和商业SSH客户端的比较http://en.wikipedia.org/wiki/Comparison_of_SSH_clients

为了让MySQL系统更安全,你应该认真考虑以下建议:

  • 要求所有MySQL帐户都有密码。客户端程序不一定知道运行它的人的身份。对于客户端/服务器应用程序来说,用户通常可以为客户端程序指定任何用户名。例如,任何人都可以使用mysql程序来连接任何其他人,只需调用它作为mysql - uother_userdb_name如果other_user没有密码。如果所有帐户都有密码,那么使用另一个用户的帐户进行连接就会困难得多。

    有关设置密码方法的讨论,请参见第6.2.14节“分配帐户密码”

  • 确保数据库目录中唯一具有读或写权限的Unix用户帐户是用于运行的帐户mysqld

  • 不要将MySQL服务器作为Unix运行用户。这是非常危险的,因为任何使用文件特权能够使服务器以(例如,~ root / . bashrc).为了防止这样的情况发生,mysqld拒绝像方法显式指定的情况除外——用户=根选择。

    mysqld可以(而且应该)作为普通的无特权用户运行。您可以创建一个名为mysql让一切更加安全。此帐户仅用于管理MySQL。开始mysqld作为一个不同的Unix用户,添加一个用户选项中指定用户名的(mysqld)集团的my.cnf指定服务器选项的选项文件。例如:

    (mysqld)用户= mysql

    这将导致服务器作为指定用户启动,无论是手动启动还是使用mysqld_safemysql.server.有关更多细节,请参见第6.1.5节“如何以普通用户运行MySQL”

    运行mysqld的Unix用户并不意味着你需要改变用户名用户表格MySQL帐户的用户名与Unix帐户的用户名无关

  • 不要授予文件非管理用户的特权。权限的任何用户都可以在文件系统的任何位置写入文件mysqld守护进程。这包括服务器的数据目录,其中包含实现特权表的文件。为了使文件-privilege操作更安全一点,文件生成用选择……到输出文件不要覆盖现有的文件,每个人都可以写。

    文件特权还可以用来读取任何文件,这些文件对于作为服务器运行的Unix用户来说是世界可读的或可访问的。有了这个特权,您可以将任何文件读入数据库表。这可能会被滥用,例如通过使用加载数据加载/ etc / passwd放入一个表中,然后可以用选择

    若要限制可读写文件的位置,请设置secure_file_priv系统的一个特定目录。看到第5.1.8节,“服务器系统变量”

  • 加密二进制日志文件和中继日志文件。加密有助于保护这些文件和其中包含的潜在敏感数据不被外部攻击者滥用,也不被存储它们的操作系统的用户未经授权查看。可以在MySQL服务器上启用加密binlog_encryption系统变量.有关更多信息,请参见第17.3.2节“加密二进制日志文件和中继日志文件”

  • 不要授予过程超级非管理用户的特权。的输出mysqladmin processlist而且显示PROCESSLIST显示当前正在执行的任何语句的文本,因此允许查看服务器进程列表的任何用户都可以查看其他用户发出的语句。

    mysqld的用户保留一个额外的连接CONNECTION_ADMIN超级特权,使MySQL即使所有正常连接都在使用中,用户也可以登录并检查服务器活动。

    超级特权可用于终止客户端连接,通过更改系统变量的值更改服务器操作,以及控制复制服务器。

  • 不允许使用表的符号链接。方法可以禁用此功能——skip-symbolic-links选择。)如果你跑步,这一点尤其重要mysqld作为,因为任何对服务器数据目录有写访问权限的人都可以删除系统中的任何文件!看到第8.12.2.2节“在Unix上为MyISAM表使用符号链接”

  • 存储的程序和视图应该使用中讨论的安全准则来编写第25.6节,“存储对象访问控制”

  • 如果不信任您的DNS,则应该在授权表中使用IP地址而不是主机名。在任何情况下,在使用包含通配符的主机名值创建授权表项时都应该非常小心。

  • 如果希望限制单个帐户允许的连接数,可以通过设置max_user_connections变量mysqld.的创建用户而且改变用户语句还支持资源控制选项,以限制允许帐户使用服务器的范围。看到第13.7.1.3节,“CREATE USER语句”,第13.7.1.1节,“ALTER USER语句”

  • 如果插件目录是服务器可写的,那么用户就可以将可执行代码写入使用的目录中的文件中选择……到DUMPFILE.这可以通过制作plugin_dir只读到服务器或通过设置secure_file_priv到其中的目录选择可以安全地进行写操作。