【MongoDB】04 权限认证

关闭MongDB

mongo --port 27017
use admin
db.shutdownServer()

重启MongDB

/usr/local/mongodb/bin/mongod -f /usr/local/mongod.conf

登录访问

/usr/local/mongodb/bin/mongo

创建系统超级管理员mongoroot

和admin数据库的管理用户mongoadmin

# 切到admin
use admin

# 创建系统超级用户mongoroot,密码123456,角色root
db.createUser({user: "mongoroot", pwd: "123456", roles: ["root"]})

# 创建admin库的管理员
db.createUser(
    {
        user: "mongoadmin",
        pwd: "123456", 
        "roles": [
            {
                role: "userAdminAnyDatabase", 
                db:"admin"
            }
        ]
    }
)

# 查看已经创建的用户
db.system.users.find()

注意:

MongoDB默认把用户信息存放到 admin 数据库的 system.users 表中

创建用户如果不指定数据库,则创建的用户在所有数据库上有效

认证测试:

# 切到admin
db.auth("账号", "密码")

创建普通用户

# 切到bbs
use bbs
# 创建用户,拥有读写权限
db.createUser({user: "jigege", pwd: "123456", roles: [{role: "readWrite", db: "bbs"}]})

注意:

如果在启动mongodb时不开启认证,那么启动后不管是否用账号密码都可以成功连接数据库。

如果开启了认证,登陆的客户端必须使用admin中保存的角色

开启认证:

关闭数据库

use admin
db.shutdownServer()

重启MongDB并且附带认证参数

/usr/local/mongodb/bin/mongod -f /mongodb/mongod.conf --auth

或者在配置文件中进行设置:

security:
  #开启授权认证
  authorization: enabled

链接访问:

/usr/local/mongodb/bin/mongo --host 172.17.238.235 --port 27017 -u mongoroot -p 123456

 

posted @ 2020-09-11 11:22  emdzz  阅读(230)  评论(0)    收藏  举报