将我的数据库版本从2.2升级到2.4后,我发现我无法从我的C#代码执行Database.Eval()函数,因为“我没有执行任务的权限”。经过一番调查后,我发现MongoDB有一些变化:
启用身份验证后,如果您没有执行指定任务的权限,db.eval()将在操作期间失败。 版本2.4中已更改:您必须具有完全管理员权限才能运行。
http://docs.mongodb.org/manual/reference/method/db.eval/
您能否告诉我如何在我的C#代码中指定这些管理员权限?
更新1: 我没有提到我在连接字符串的开头使用login:password并且用户具有以下角色:roles:[“readWrite”,“dbAdmin”]}我也使用MongoHQ数据库托管
答案 0 :(得分:1)
您必须将最右侧(dbAdmin角色,userAdmin角色,clusterAdmin角色)添加到您的连接字符串用户。
1-检查用户的连接字符串
的mongodb:// [用户名:密码@]主机1 [:端口1] ...
2-使用管理员角色db.addUser( { user: "<user>", pwd: "<password>", roles: [<roles>] } )
见 http://docs.mongodb.org/manual/reference/user-privileges/ http://docs.mongodb.org/manual/reference/method/db.addUser/