2010-12-16 63 views
1

我知道,对于安全的数据库,需要有用户名和密码。不过,我很好奇为什么Ruby on Rails不允许你在mysql上使用匿名帐户。我已经尝试在数据库中保留用户名和密码行为空。可能我并不完全了解数据库信息存储在RoR应用程序中的哪个位置。我也尝试去“Ruby192 \ lib \ ruby​​ \ gems \ 1.9.1 \ gems \ mysql2-0.2.6-x86-mingw32”下的mysql2目录(这是我用来让你知道的版本)。但我真的不知道在哪里看。在RoR上使用匿名mysql帐户

如果任何人有任何想法,或解释为红宝石甚至允许你没有用户名和密码访问数据库。

+0

你可以在MySQL中有一个空白的密码,但没有空白的用户。 – Mchl 2010-12-16 18:50:27

回答

0

你看到了什么错误?

密码肯定不需要在配置中,但如果我尝试将用户名设置为空,并在控制台中检查ActiveRecord :: Base.connection,我可以看到它默认回到使用root。

+0

这是有道理的,当我离开用户名空白我看到下面的错误。访问被拒绝用户'root'@'localhost'(使用密码:NO)。所以基本上我怎么能防止用户名默认回到使用根? – 2010-12-16 19:27:46

+0

我并不完全确定理由(就安全性而言,我理解为什么它被压低了,但不是为什么它被迫),但它是[活动记录的mysql适配器的第36行]上的硬编码回退(https:/ /github.com/rails/rails/blob/master/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb#L36) – idlefingers 2010-12-16 20:25:43