mongodb2.X添加权限

时间:2022-06-05 14:36:47

1、连接mongodb数据库(如果mongo命令没有做环境变量配置,需要定位到有mongo命令的目录)

root@AY140709212620347s22Z:~# mongo
MongoDB shell version: 2.4.10
connecting to: test

2、切换到admin数据库,并添加管理员,退出(ctrl+c)

> use admin
switched to db admin
> db.addUser('admin','admin')
{
"_id" : ObjectId("54a8ced8fda9367f56566c47"),
"pwd" : "d4c6323271dbd1b8df4177d6e4ed8718",
"readOnly" : false,
"user" : "admin"
}

3、配置mongodb.conf设置auth=true 重新启动mongodb

4、测试管理员权限

root@AY140709212620347s22Z:~# mongo
MongoDB shell version: 2.4.10
connecting to: test
> use admin --切换数据库
switched to db admin
> show dbs --没授权,展示数据库会报错unauthorized
Sun Jan 4 15:24:57.950 listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:46
> db.auth('admin’,’ihejun_123’) --授权成功
1
> show dbs --可以正常访问了

5、继续接上面的步骤,给test数据库添加账号密码

> use test
switched to db test
> db.addUser('test','123')
{
"user" : "test",
"readOnly" : false,
"pwd" : "e10adc3949ba59abbe56e057f20f883e",
"_id" : ObjectId("54a8dbefa4c63fa763cfe76c")
}

6、其他

修改密码:
方法1:db.addUser('test','123456') //如果没有账号会新增,如果存在账号则会覆盖
方法2:db.changeUserPassword('test','123456')

删除用户:db.system.users.remove({user:"test"});

注意:在nodejs中使用mongoose连接数据库时,密码中不要有@字符。