mongodb2.6的权限管理与2.4有很大不同,网上能看到的文章基本都是基于2.4以下的,很多并不适用。经过一番摸索终于理顺了2.6的权限管理,做下笔记。

我所用的版本是Linux 64-bit,下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.6.tgz

mongodb默认不启用权限管理,访问不需要验证。要开启权限管理功能,启动时增加--auth参数。

mongodb 2.6.6 权限管理

启用后,数据库中还没有任何的用户,此时非本机客户端访问会提示错误

mongodb 2.6.6 权限管理

在数据库还没有任何用户的情况下,只能通过本机登录进行维护

mongodb 2.6.6 权限管理

通过以下命令先给数据库增加个管理员。2.4及之前的版本是用的addUser命令,2.6之后用createUser。

use admin

db.createUser( { "user" : "admin",

"pwd": "admin",

"roles" : [ { role: "userAdminAnyDatabase", db: "admin" },

{ role: "dbAdminAnyDatabase", db: "admin" }

]

})

建议先切换到admin库,不然创建的admin用户会在别的库下面。

mongodb 2.6.6 权限管理

创建了第一个用户之后,本机也必须先登录才能使用数据库了。用另外一个shell登录,会报错。

mongodb 2.6.6 权限管理

原来已经连接的客户端也不能进行操作了。

mongodb 2.6.6 权限管理

此时需要先登录,用db.auth(user, password) 命令,返回1表示认证通过。

mongodb 2.6.6 权限管理

db.system.users.find()show users可以查询到我们刚新增的admin用户。

mongodb 2.6.6 权限管理

如果创建admin用户时是在别的库,例如test,这时查到的用户应该是这样的

mongodb 2.6.6 权限管理

差异在_id和db这两个字段。使用时的不同,表现在用户登录时验证的数据库。此时在admin库下登录是不允许的,必须先切换到test库。

mongodb 2.6.6 权限管理

登录后就可以管理任何的数据库和用户了。

mongodb 2.6.6 权限管理

未完待续…

 

 

 

相关文章:

  • 2021-05-28
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2021-07-15
  • 2021-07-19
  • 2022-01-27
猜你喜欢
  • 2022-02-21
  • 2021-10-08
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
相关资源
相似解决方案