Mongodb权限管理
本文列出最基本的添加用户、删除用户等操作。配置和环境:
win10(本机)和linux(CentOs7)内网服务器各一台。Mongodb3.07
一、添加用户
mongodb安装好后,默认是没有用户的。首先在不进行认证方式的情况下启动mongo
1
# mongod
先说个重要的事儿,如果需要用客户端软件连接mongodb的话,需要修改认证版本,然后再添加用户:
1
2
3
4
5
6
> use admin
switched to db admin
>var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema.currentVersion = 3 3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
用户有很多种,列出常见几种的添加方式:
[*]添加超级用户
1
2
3
4
5
> db.createUser({
user:"root",
pwd:"123456",
roles:["root"]
})
[*]添加用户管理员
1
2
3
4
5
6
7
8
> db.createUser({
user:"admin",
pwd:"123456",
roles:[{
role:"userAdminAnyDatabase",
db:"admin"
}]
})
[*]添加普通读写用户
1
> db.createUser({user:"test",pwd:"123456",roles:[{role:"readWrite", db:"test"}]})
查看添加的用户情况:
1
2
> use admin
> db.system.users.find();
1
2
{ "_id" : "admin.root", "user" : "root", "db" : "admin", "credentials" : { "MONGODB-CR" : "b00a366ac2810fb995d556ee159aa35e" }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
...
[*]删除用户:
1
db.dropUser("test");
二、开启权限认证
首先关闭mongo,
1
> db.shutdownServer();
如果由于某些原因关不掉就kill掉。
然后带auth参数重新启动:
1
# mongod --auth
之后的操作就涉及到权限了,例如查询系统用户时,需要认证,查看库数据也需要认证。认证方式:
1
2
3
4
5
6
7
8
9
> use admin
switch to db admin
> db.auth("admin", "123456");
1
...
> use test
swtich to db test
> db.auth("test", "123456");
1
认证成功就是1,否则返回0和对应出错信息。
如果开启了认证,记得用客户端操作时也要先进行认证,否则有些客户端不会返回任何信息。
页:
[1]