当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。
所有其他信息作为能被所有人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh(见http://www.cs.hut.fi/ssh)。用他,你能在一个MySQL服务器和一个MySQL客户之间得到一个加密的TCP/IP连接。
为了使一个MySQL系统安全,强烈需求你考虑下列建议:
1:对所有MySQL用户使用口令。记住,如果other_user没有口令,所有人能简单地用mysql -u other_user db_name作为所有其他的人登录。对客户机/服务器应用程式,客户能指定所有用户名是常见的做法。在你运行他以前,你能通过编辑mysql_install_db脚本改动所有用户的口令,或仅仅MySQL root的口令,象这样:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD(’new_password’)
WHERE user=’root’;
mysql> FLUSH PRIVILEGES;
2:不要作为Unix的root用户运行MySQL守护进程。mysqld能以所有用户运行,你也能创造一个新的Unix用户mysql使一切更安全。如果你作为其他Unix用户运行mysqld,你不必改动在user表中的root用户名,因为MySQL用户名和Unix 用户名没关系。
你能作为其他Unix用户编辑mysql.server启动脚本mysqld。通常这用su命令完成。
对于更多的细节,见18.8 怎样作为一个一般用户运行MySQL。
如果你把一个Unix root用户口令放在mysql.server脚本中,确保这个脚本只能对root是可读的。
检查那个运行mysqld的Unix用户是唯一的在数据库目录下有读/写权限的用户。
3:不要把process权限给所有用户。mysqladmin processlist的输出显示出当前执行的查询正文,如果另外的用户发出一个UPDATE user SET password=PASSWORD(’not_secure’)查询,被允许执行那个命令的所有用户可能看得到。mysqld为有process权限的用户保留一个额外的连接, 以便一个MySQL root用户能登录并检查,即使所有的正常连接在使用。
4:不要把file权限给所有的用户。有这权限的所有用户能在拥有mysqld守护进程权限的文件系统那里写一个文件!为了使这更安全一些,用SELECT ... INTO OUTFILE生成的所有文件对每个人是可读的,并且你不能覆盖已存在的文件。file权限也能被用来读取所有作为运行服务器的Unix用户可存取的文件。这可能被滥用,例如,通过使用LOAD DATA装载“/etc/passwd”进一个数据库表,然后他能用SELECT被读入。
5:如果你不信任你的DNS,你应该在授权表中使用IP数字而不是主机名。原则上讲,--secure选项对mysqld应该使主机名更安全。在所有情况下,你应该非常小心地使用包含通配符的主机名
分享到:
相关推荐
在使用Windows操作系统时,如果忘记了MySQL数据库中root用户的密码,用户可能会陷入无法登录数据库的困境。这种情况对于数据库管理员来说尤其麻烦,因为没有密码意味着无法执行数据库管理任务,比如更新、查询等。...
在安装MySQL后,进行初始设置至关重要,尤其是为root用户设置安全密码和允许远程访问,以便于管理和维护数据库。以下将详细介绍这两个关键步骤。 首先,让我们讨论如何初始化MySQL的root密码。在MySQL安装后,默认...
不要使用root用户运行MySQL服务,而是创建一个专用的MySQL用户。这可以通过在`my.cnf`配置文件中设置`user`参数来实现。 ```ini [mysqld] user = mysql ``` 确保该用户仅拥有运行MySQL所需的权限。 #### 6. 禁止...
MySQL应安装在独立的用户下,安装过程使用root权限,但随后的数据目录权限应更改为实际运行MySQL的用户,如`chown -R mysql:mysql /home/mysql/data`。避免以root权限运行MySQL,日常维护应在mysql用户下进行。 ...
MYSQL 服务端 MYSQLD_SAFE 提供了多种安全相关的选项,例如,可以使用 --ssl-ca 选项指定 SSL 证书,使用 --ssl-cert 选项指定 SSL 证书文件,使用 --ssl-key 选项指定 SSL 私钥文件等。 本指南提供了一个详细的 ...
MySQL默认的root用户口令是空的,这无疑是个安全隐患。因此,要使用强密码进行替换,通常强密码是由字母、数字和特殊字符组成的至少8位的复杂密码。可以通过mysqladmin工具或直接登录到MySQL数据库来更改root密码。 ...
### MySQL使用手册精要 MySQL作为一款广泛应用于Web开发中的关系型数据库管理系统,掌握其基本操作及高级管理技巧对于开发者而言至关重要。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,旨在全面...
- 不建议使用Unix/Linux系统的root用户来运行MySQL服务,因为一旦MySQL服务出现安全漏洞,攻击者可能利用此漏洞获得系统最高权限,从而对系统造成更大的破坏。 - 建议创建一个专门的系统账户来运行MySQL服务,限制...
在RedHat9.0这样的Linux环境中,你可以直接使用root用户登录MySQL数据库,然后执行各种数据库管理任务。这包括创建数据库、用户,以及分配和调整权限等。 总之,MySQL命令行模式管理涵盖了数据库的启动、安全配置、...
root 用户的权限较大,当使用 root 用户运行 MySQL 时候,若攻击者通过 SQL 注入漏洞入侵系统,则可直接获取数据库 root 权限。因此,应该使用其他用户运行来确保安全性。在 /etc/my.cnf 中配置使用 mysql 用户运行...
MySQL应安装在独立用户下,安装过程中使用root权限,但安装完成后,数据目录的权限应更改为实际运行MySQL的用户。运行MySQL时,避免以root权限进行,以免增加不必要的安全风险。 总结来说,MySQL的安全配置涉及用户...
- 初始化后,MySQL会创建一个名为`test`的数据库和一些默认用户,这些可能会成为安全隐患。可以通过`drop database`和`delete`命令删除它们,然后使用`flush privileges`刷新权限缓存。 4. **更改默认管理员用户名...
除了权限设置,还有其他安全措施,如限制远程访问、使用防火墙规则限制特定IP的连接、定期更新MySQL以修复安全漏洞、使用强密码策略、启用日志记录以便监控异常活动、定期备份数据以及设置合适的用户权限。...
这样可以确保数据库服务仅由指定用户运行,降低安全隐患。 2. **配置文件**:将MySQL的配置文件`my-medium.cnf`复制到`/etc`目录下,然后更改所有权和权限。`chown`命令用于改变所有者和组,`chmod 644`设置文件的...
在MySQL的安装目录下的bin目录中,例如`d:\MySQL\bin\>`,运行`MySQL -h localhost -u root`,使用root用户登录。 2. 登录后,执行SQL命令`UPDATE user SET host = '%' WHERE user = 'root';`,这会将root用户的主机...
- 新安装的MySQL会创建一个名为`test`的数据库和一些默认用户,这些可能会成为安全隐患。应删除所有不必要的数据库和用户,特别是那些未授权的本地用户。 4. **更改默认管理员名称**: - 为了增加安全性,可以...
4. `user`:MySQL 服务运行的系统用户,通常为 `mysql` 或者 `root`。 5. `skip-grant-tables`:如果你想要在没有密码的情况下启动 MySQL,可以暂时添加这一行,但记得之后移除,因为这会带来安全隐患。 **启动与...
**重要性**: 使用此选项会导致所有客户端对所有数据库具有不受限制的访问权限,极大地增加了安全隐患。 **检查步骤**: 1. 检查MySQL配置文件是否存在`--skip-grant-tables`选项。 **加固建议**: 1. 编辑MySQL配置...
4. **配置安全设置**:安装完成后,运行`sudo mysql_secure_installation`来加强MySQL的安全设置,例如删除匿名用户,禁止远程root登录,删除测试数据库等。 5. **启动服务**:使用`sudo systemctl start mysql`启动...