首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从Rails更新RDS数据库

问无法从Rails更新RDS数据库
EN

Stack Overflow用户
提问于 2012-09-26 23:39:22
回答 1查看 492关注 0票数 0

如果我登录到mysql终端,我就能够对RDS数据库进行任何我想要的更新或添加。但是当我从rails控制台使用活动记录时,我只能访问数据,而不能更新或销毁数据。

我似乎得到了正确的资助:

代码语言:javascript
复制
| 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看起来像这样:

代码语言:javascript
复制
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:

代码语言:javascript
复制
>> 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没有任何错误日志,所以我看不到是否提交了任何错误。

EN

回答 1

Stack Overflow用户

发布于 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”。您确实应该考虑将特定于应用程序的用户定义为具有适当的权限,以便仅执行应用程序需要执行的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12605437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档