使用Authorization在mongo命令行上执行javascript

时间:2014-10-15 14:03:48

标签: javascript mongodb shell command-line authorization

我已成功从mongo shell执行javascripts 我们现在已经启用了mongo数据库的授权 已经给出了权限,如果我登录shell并执行查询,一切都很好

但是,我试图从命令行执行javascript,我遇到了问题

我正在发出命令     mongo -u -p -authenticationDatabase admin GetProcessDate.js

我收到错误消息

MongoDB shell version: 2.6.5
connecting to: test
2014-10-15T06:44:11.451-0700 error: { "$err" : "not authorized for query on bvmaster.ProcessDate", "code" : 13 } at src/mongo/shell/query.js:131
failed to load: GetProcessDate.js

当我禁用授权时,这个javascript执行得很好

mongo GetProcessDate.js

当我启用授权并登录shell时,一切正常

mongo -u <user>-p <password> -authenticationDatabase admin

javascript非常简单

mongo = new Mongo();
bvmasternew = mongo.getDB( "bvmaster" );

ProcessDateCursor = bvmasternew.ProcessDate.find();
ProcessDateRec = ProcessDateCursor.next();
print( ProcessDateRec.Date);

任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:0)

经过大量搜索,我发现了以下内容; 当您在mongo命令行上执行javascript时,在命令行上传递的参数无关紧要 在你的mongo javascript里面 你需要用适当的参数调用mongo

mongo = new Mongo( server:port );
admin = mongo.getDB( "admin" );
admin.auth( User, Password );

这些行基本上授权用户在使用服务器/端口组合连接的mongo实例中执行各种操作