如果我登录到mysql终端,我就能够对RDS数据库进行任何我想要的更新或添加。但是当我从rails控制台使用活动记录时,我只能访问数据,而不能更新或销毁数据。
我似乎得到了正确的资助:
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX,
ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION
CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT,
TRIGGER ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD'*XXXXX' WITH GRANT OPTION |我的database.yml看起来像这样:
development:
host: XXXX.YYYY.us-east-1.rds.amazonaws.com
adapter: mysql2
encoding: utf8
reconnect: false
database: filemaker
pool: 5
username: root
password: ZZZZZ现在,当我尝试更新记录时,我得到的返回值为false:
>> Section.first.update_column(:craigslist_posts, 1)
Section Load (101.6ms) SELECT `sections`.* FROM `sections` LIMIT 1
SQL (49.9ms) UPDATE `sections` SET `craigslist_posts` = 1 WHERE `sections`.`_id`=
4470
=> false 我关闭了whitelist_attributes,认为这可能与它有关。因为RDS没有任何错误日志,所以我看不到是否提交了任何错误。
发布于 2012-09-27 01:38:24
您不能在RDS上使用root用户,这是为亚马逊服务层保留的。您应该引用您在创建RDS实例时指定的RDS“主用户”名称。这是您的默认主用户,它拥有大多数服务器级别的权限。See this link for more info on privileges granted to the master user.
好的数据库实践应该让您不使用"root“用户或与其最接近的RDS对特定应用程序使用"master user”。您确实应该考虑将特定于应用程序的用户定义为具有适当的权限,以便仅执行应用程序需要执行的操作。
https://stackoverflow.com/questions/12605437
复制相似问题