我正在设置mongodb,我们使用puppet来控制服务器的配置。
我已经设置了大部分内容,我需要它们,但我需要在mongo数据库中创建用户。
我知道如何使用mongo shell执行此操作,我知道我可以使用命令使用javascript / a .js来完成此操作
db.addUser("username", "password"[, readOnly])
但是,我一直无法找到在javascript中执行此操作所需的实例。更重要的是,我需要能够使用某种shell脚本从命令行添加用户。
如果有人可以
a)给我一些使用javascript和mongoDB和
的实例b)如何从命令行执行此操作?
答案 0 :(得分:14)
Mongo的cli告诉你如何将它与js文件一起使用
$ mongo --help
MongoDB shell version: 2.0.3
usage: mongo [options] [db address] [file names (ending in .js)]
...
用法:mongo [选项] [db地址] [文件名(以.js结尾)]
例如:
$ echo 'db.addUser("guest", "passwordForGuest", true);' > file.js
$ mongo mydb file.js
MongoDB shell version: 2.0.3
connecting to: mydb
{ "n" : 0, "connectionId" : 1, "err" : null, "ok" : 1 }
{
"user" : "guest",
"readOnly" : true,
"pwd" : "b90ba46d452e5b5ecec64cb64ac5fd90",
"_id" : ObjectId("4fbea2b013aacb728754fe10")
}
<强> UDPATE:强>
db.addUser自2.6以来已弃用
https://docs.mongodb.com/v2.6/reference/method/db.addUser/
改为使用db.createUser
:
// file.js
db.createUser(
{
user: "guest",
pwd: "passwordForGuest",
roles: [ { role: "read", db: "mydb" } ]
}
)
$ mongo mydb file.js
答案 1 :(得分:2)
这是一个更简单优雅的解决方案:
echo 'db.addUser("<username>", "<password>");' | mongo <database>
使用MongoDB 2.4.8进行测试
答案 2 :(得分:0)
http://www.mongodb.org/display/DOCS/Scripting+the+shell
使用相关语言相关的MongoDB驱动程序,使用您喜欢的脚本语言编写脚本。
答案 3 :(得分:0)
我知道AD7six已经出现问题,但是当我尝试时,我获得了一个具有数据库身份验证“测试”的用户。
因此,我在创建用户之前添加了一个命令来选择此身份验证数据库。
db = db.getSiblingDB('myDataBase');
db.createUser(
{
user: "myUser",
pwd: "myPwd",
roles: [
{ role: "readWrite", db: "myDataBase" }
]
}
);
身份验证数据库和用户使用的数据库可以不同。 命令“ getSiblingDB(dataBase)”(Javascript)是“使用数据库”(Shell)的替代方法