我目前正在为我的 Rails 应用程序使用 MySQL。在我的 database.yml 中,我有以下内容:
production:
adapter: mysql2
database: application_name_production
username: root
password: password
host: localhost
我想知道,以root用户身份连接到数据库可以吗?它会比使用 root 以外的其他用户更不安全吗?
我目前正在为我的 Rails 应用程序使用 MySQL。在我的 database.yml 中,我有以下内容:
production:
adapter: mysql2
database: application_name_production
username: root
password: password
host: localhost
我想知道,以root用户身份连接到数据库可以吗?它会比使用 root 以外的其他用户更不安全吗?
这是以明文形式存储的,所以是的,这是一件非常糟糕的事情。如果有人可以访问您的网络服务器,他可以读取密码。嘿,这可能是用户 root 访问整个系统的相同密码 :)
创建一个只能使用特定于应用程序的数据库的数据库用户。如果有人窃取了您的 database.yml,那么只有该数据可以被窃取/编辑/销毁。请勿使用已在其他地方使用过的密码。
正如您所料,当黑客侵入您的系统时,他会立即使用自动脚本搜索 database.yml 文件。因此,在进入您的系统的一秒钟内,他就可以访问您的所有数据。
让单独的用户仅对数据库(和任何系统)具有一组所需的权限,这为防止黑客提供了额外的步骤
那么为什么不花 5 分钟创建一个单独的用户来节省数小时从可能的黑客攻击中恢复的时间呢?
提供 root 密码(用于系统、数据库等)是非常糟糕的事情。这就像给每一个汤姆、迪克和哈利一套你的前门钥匙。
因此,只需花一点时间创建具有适当权限的用户。这将实现保护系统、数据库、表和可执行操作的完整性的额外优势。
在我看来,我只是使用存储过程来访问网站,并且只允许从存储过程中执行。这确保了当卡片靠近数据库箱时,不会有任何讨厌的东西进入并保持性能。毕竟,网站的数据库是最大的断言之一。