MongoDB 授权 3.4 windows

安装完mongodb后默认是没有用户的,也不需要授权登录。

连接mongodb,用 mongo.exe。

切换到admin数据库 use admin

使用创建用户命令:

 

use admin
db.createUser(
  {
    user: "admin",
    pwd: "123456",
    roles: [ { role: "root", db: "admin" } ]
  }
)

验证用户,返回1成功,0失改
db.auth('admin','123456')

则对admin数据库添加了名为admin的用户(注:mongo为每一个数据库都提供了一套用户权限)

接着关闭数据库(注:当启动了授权认证,只有root角色有权限可以关闭数据库)

 

db.shutdownServer();

 

第二次登录启用授权认证:加--auth

 

扫描二维码关注公众号,回复: 534518 查看本文章

接着切换到admin数据库,使用查看用户命令

use admin
show users

  将提示未授权

  这时需要做授权认证

db.auth("admin","123456");

  再调用刚才的命令则可以查看到用户信息

 

接着我们需要为我们的数据库添加相关用户,这里使用test为示例

复制代码
use test
db.createUser(
 {
   user: "test",
   pwd: "123456",
   roles: [
      { role: "readWrite", db: "test" }
   ]
 }
)
复制代码

这里为test数据库添加了具有读写权限的角色

 

 

到此,mongo授权完成

 

 

2MongoDB 如果不配置登陆的情况是等于游客也是超级管理员的,但默认不支持外链接的

 

3基本的角色 

userAdminAnyDatabase 这个角色拥有分配角色和用户的权限,但没有查写的缺陷
root  这是超级管理员
readWrite  有读写权限
read    有读权限

 

 

 

 开始设置好用户直接重启,本地登录认证都ok,远程认证总是失败,网上找了各种资料,都没有进行说明,找了很久,终于发现一篇文章告诉mongodb3.0认证信息需要修改才能进行连接

 

修改命令如下,进入shell:

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

在修改完成之后再创建用户。下面附带创建数据库用户的shell

1 创建一个root用户:

use admin
db.createUser(
    {
      user: "root",
      pwd: "123456",
      roles: [ "root" ]
    }
)

2 创建admin用户

use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

3 创建具体数据库的用户

use test
db.createUser(
  {
    user: "test",
    pwd: "password",
    roles: [ { role: "userAdmin", db: "test" } ]
  }
)

最后都要认证一下

db.auth("user", "pwd")

返回1代表成功,0代表失败。

 

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

连接成功

 

 

 

 

猜你喜欢

转载自xinjiatao.iteye.com/blog/2347521