2014-01-23 67 views
1

将我的数据库版本从2.2更新到2.4后,我发现我无法执行我的C#代码中的Database.Eval()函数,因为“我不有权执行我的任务“。经过一番调查后,我发现MongoDB有一些变化:从C#驱动程序执行MongoDB Eval函数(MongoDB版本2.4)

启用身份验证后,如果您没有执行指定任务的权限,db.eval()将在操作过程中失败。 在版本2.4中更改:您必须具有完整的管理员权限才能运行。

http://docs.mongodb.org/manual/reference/method/db.eval/

你能告诉我如何指定我的C#代码的管理员权限?

更新1: 我没有提到我在连接字符串的开始处使用login:password并且用户处于以下角色:roles:[“readWrite”,“dbAdmin”]} I同样使用MongoHQ数据库托管。

+0

建立具有管理员权限的用户后,可以追加到连接字符串的用户名和密码,像这样'变种connectionSt ring =“mongodb:// admin:password @ localhost”'。 –

回答

1

您必须将righst(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/

+0

请参阅更新1 – dygo