mongodb Enable Auth

时间:2023-03-09 19:33:58
mongodb Enable Auth
  1. 启动mongodb没有使用通道控制

mongod --port 27017 --dbpath /data/db1

  1. 连接mongo

mongo --port 27017

  1. 创建用户

     use admin
    db.createUser(
    {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
    }
    )
  2. 开启access control之后,重新运行mongodb实例

    在配置文件中添加security.authorization: enabled

mongod --auth --port 27017 --dbpath /data/db1

  1. 连接并且验证用户

    使用mongo shell,你可以:

    直接指定用户密码验证

mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

不指定密码,登录以后使用db.auth()

mongo --port 27017

use admin

db.auth("myUserAdmin", "abc123" )

  1. 创建其他用户

    一旦administrator认证通过之后,就可以使用db.createUser()来创建其他的用户,你可以给用户分配built-in role或者user-defined roles

    之前创建的myUserAdmin用户,仅仅是用来管理用户和角色,作为myUserAdmin,如果你尝试执行一些其他操作,像在 test 数据库中读取foo collection,这将会报错。

     use test
    db.createUser(
    {
    user: "test",
    pwd: "123456",
    roles: [ { role: "readWrite", db: "test" },
    { role: "read", db: "reporting" } ]
    }
    )
  2. 连接和认证test

mongo --port 27017 -u 'test' -p '123456' --authenticationDatabase "test"

或者:

mongo --port 27017

use test

db.auth('test','123456')