从C#驱动程序执行MongoDB Eval函数(MongoDB版本2.4)

时间:2014-01-23 20:55:18

标签: c# mongodb

将我的数据库版本从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数据库托管

1 个答案:

答案 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/