098098 发表于 2015-11-26 10:44:20

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]
查看完整版本: Mongodb权限管理