从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)
Posted
技术标签:
【中文标题】从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)【英文标题】:Execute MongoDB Eval function from C# driver (MongoDB version 2.4) 【发布时间】:2014-01-23 20:55:17 【问题描述】:在将我的数据库版本从 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 并且用户具有以下角色:角色:[“readWrite”,“dbAdmin”] 我也在使用 MongoHQ 数据库托管.
【问题讨论】:
设置具有管理员权限的用户后,您可以将用户名和密码附加到连接字符串中,如var connectionString = "mongodb://admin:password@localhost"
。
【参考方案1】:
您必须将正确的(dbAdmin 角色、userAdmin 角色、clusterAdmin 角色)添加到您的连接字符串用户。
1- 在连接字符串上检查您的用户
mongodb://[用户名:密码@]host1[:port1]...
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/
【讨论】:
请参阅更新 1以上是关于从 C# 驱动程序执行 MongoDB Eval 函数(MongoDB 版本 2.4)的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符
如何在 MongoDB C# 驱动程序版本 2 中使用 $ 位置运算符
使用 C# 驱动程序以指定顺序从 MongoDB 获取文档 [重复]