Mongodb权限管理

本文列出最基本的添加用户、删除用户等操作。

配置和环境:

win10(本机)和linux(CentOs7)内网服务器各一台。

Mongodb3.07


一、添加用户

  mongodb安装好后,默认是没有用户的。首先在不进行认证方式的情况下启动mongo

# mongod

  先说个重要的事儿,如果需要用客户端软件连接mongodb的话,需要修改认证版本,然后再添加用户:

> 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 })

 

  用户有很多种,列出常见几种的添加方式:

  • 添加超级用户

> db.createUser({
    user:"root",
    pwd:"123456",
    roles:["root"]
   })
  • 添加用户管理员

> db.createUser({
    user:"admin",
    pwd:"123456",
    roles:[{
        role:"userAdminAnyDatabase",
        db:"admin"
        }]
    })
  • 添加普通读写用户

> db.createUser({user:"test",pwd:"123456",roles:[{role:"readWrite", db:"test"}]})


  查看添加的用户情况:

> use admin
> db.system.users.find();
{ "_id" : "admin.root", "user" : "root", "db" : "admin", "credentials" : { "MONGODB-CR" : "b00a366ac2810fb995d556ee159aa35e" }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
...
  • 删除用户:

db.dropUser("test");


二、开启权限认证

  首先关闭mongo,

> db.shutdownServer();

  如果由于某些原因关不掉就kill掉。

  然后带auth参数重新启动:

# mongod --auth

  之后的操作就涉及到权限了,例如查询系统用户时,需要认证,查看库数据也需要认证。认证方式:

> use admin
switch to db admin
> db.auth("admin", "123456");
1
...
> use test
swtich to db test
> db.auth("test", "123456");
1

  认证成功就是1,否则返回0和对应出错信息。

  如果开启了认证,记得用客户端操作时也要先进行认证,否则有些客户端不会返回任何信息。


你可能感兴趣的:(mongodb,mongo,mongodb权限,mongodb认证)