MongoDB—— 安全认证

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB—— 安全认证相关的知识,希望对你有一定的参考价值。

目录

一、创建管理员账号

#设置管理员用户名密码需要切换到admin库
use admin
#创建管理员
db.createUser(user:"xz",pwd:"xz",roles:["root"])
#查看所有用户信息
show users

二、常用权限

2.1、常用权限列表

常用权限描述
read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
dbOwner允许用户在指定数据库中执行任意操作,增、删、改、查等
userAdmin允许用户向system.users集合写入,可以在指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root只在admin数据库中可用。超级账号,超级权限

2.2、用户认证示例

  • 用户认证,返回1表示认证成功

2.3、删除用户示例

  • 删除用户

    db.dropUser("xz")
    

三、创建应用数据库用户

  • 创建xzdb数据库及对应的用户名和密码

    #创建xzdb数据库
    use xzdb
    #创建xzdb数据库的用户名和密码
    db.createUser(user:"xzuser",pwd:"xzpwd",roles:["dbOwner"])
    

  • 用户认证,返回1表示认证成功

    use xzdb
    db.auth("xzuser","xzpwd")
    

  • 先关闭MongoDB服务

    mongod --port=27017 --dbpath=/xz/mongodb/data --shutdown
    

  • 再以鉴权模式启动MongoDB(默认情况下,MongoDB不会启用鉴权)

    mongod -f /xz/mongodb/conf/mongo.conf --auth
    

  • 启用鉴权之后,连接MongoDB的相关操作都需要提供身份认证

     mongo -u xzuser -p xzpwd --authenticationDatabase=xzdb
    

以上是关于MongoDB—— 安全认证的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 3.2.9 关于安全认证后使用C#调用碰上的相关问题

Mongodb集群加了安全认证后,如何判断是否认证成功

MongoDB学习总结 —— 安全认证

MongoDB无法连接/认证失败

MongoDB的安全校验

MongoDB安全及身份认证