MongoDB 添加用户认证

henryspace 记录精彩的程序人生 本文由博客端 https://henryspace.cn 主动推送
本贴最后更新于 345 天前,其中的信息可能已经沧海桑田

安装版本:db version v4.2.6
MongoDB 默认安装并没有开启用户名密码登录,这样太不安全。首先开启一个无需验证用户的 MongoDB 服务后,进入 MongoDB 的 shell 控制台创建用户:

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

创建用户后,关闭连接,进入正题:
安装路径: D:PROGRA~1\MongoDB\Server\4.2\bin\
配置文件中添加 authorization 项 ,配置文件地址如下,没有可创建 D:PROGRA~1\MongoDB\Server\4.2\bin\mongod.cfg
配置文件内容如下:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
    dbPath: D:\PROGRA~1\MongoDB\Server\4.2\data\db
    journal:
        enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
    destination: file
    logAppend: true
    path: D:\PROGRA~1\MongoDB\Server\4.2\log\mongod.log

# network interfaces
net:
    port: 27017
    bindIp: 127.0.0.1


#processManagement:


security:
    authorization: enabled
  
  
setParameter:
    enableLocalhostAuthBypass: false 
  
#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

配置好之后注册服务:

D:\PROGRA~1\MongoDB\Server\4.2\bin\mongod.exe 
--config "D:\PROGRA~1\MongoDB\Server\4.2\bin\mongod.cfg" 
--install --serviceName "MongoDB" --serviceDisplayName "MongoDB"

启动服务:
net start MongoDB
遇到的问题:
Error1:
F CONTROL [main] Failed global initialization: BadValue: dbPath requires an absolute file path with Windows services
Error2:
Error parsing YAML config file: yaml-cpp: error at line 2
以上都是配置文件配置问题,注意文件中不要出现单引号,双引号之类的;
配置项每层缩进都是 4 个空格,不要用 tab 缩进
Error3:
控制台显示服务未注册
这个一般是注册服务的命令有引号错误或者路径错误,检查有没有少斜线。正常的注册完服务并启动时,会显示服务已开启。

Microsoft Windows [版本 10.0.18363.657]

HLJYY@YJY-108 F:\Program
# D:\PROGRA~1\MongoDB\Server\4.2\bin\mongod.exe --config "D:\PROGRA~1\MongoDB\Server\4.2\bin\mongod.cfg" --install --serviceName "MongoDB" --serviceDisplayName "MongoDB"

HLJYY@YJY-108 F:\Program
# net start MongoDB
MongoDB 服务正在启动 .
MongoDB 服务已经启动成功。

HLJYY@YJY-108 F:\Program
#

新开窗口进入 mongodb 的 shell 控制台验证:

Microsoft Windows [版本 10.0.18363.657]

HLJYY@YJY-108 F:\Program
# mongo
MongoDB shell version v4.2.6
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("46e409af-7220-4fed-965c-bb03099fec8d") }
MongoDB server version: 4.2.6
> show dbs
> use admin
switched to db admin
> db.auth("admin","123456")
1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
>                                                                                    
                                                                                  

参考链接:
Mongodb 学习(4)通过配置文件启动 mongod
windows 系统,MongoDB 开启用户验证
解决“Error parsing YAML

权限认证已 ok

  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    82 引用 • 53 回帖 • 2 关注

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...