本机 MongoDB 注册系统服务、启用security认证

目录

一、注册系统服务。

[二、MongoDB 启用security(密码)认证。(Python)](#二、MongoDB 启用security(密码)认证。(Python))


一、注册系统服务。

  • Win+ R =》services.msc。若在服务中找不到 MongoDB 服务,MongoDB 可能是非服务方式安装的。也就可以通过手动设置与安装注册系统服务。

  1. 找到 mongod.exe 所在目录。通常是安装 MongoDB 时位于 /bin 目录下。
  2. 打开命令提示符(需管理员启动),进入到 /bin 目录下。
  3. 指定配置文件并安装对应的服务。其中 mongod.cfg 或 mongod.cong 是配置文件。
  4. 按顺序执行对应的命令即可。--serviceName 后面的参数可自定义。
bash 复制代码
d:

cd D:\mongodb\bin

mongod.exe --config "D:\mongodb\bin\mongod.cfg" --install --serviceName "MongoDB"

net start MongoDB
  • 若已经存在,可以先卸载,再重新注册即可。

    mongod.exe --remove --serviceName "MongoDB"

  • 完成上述操作后,如我自定义了服务名称:mongodb。

二、MongoDB 启用security(密码)认证。(Python)

  • 个人本地开发(非生产环境),建议无需配置密码。

  • 因为 MongoDB 配置文件中默认不对外暴露、其次省去每次连接输入密码。


  • 数据库需要对外网开放、存储敏感数据等情况时,建议配置密码。

  • 本机访问 MongoDB 简易配置密码操作如下。注意需提前安装对应 python 操作MongoDB 驱动包。

bash 复制代码
pip install pymongo
  • 默认连接本地 MongoDB 是无需密码即可连接,因为默认不开启密码认证。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://localhost:27017/")   #默认无密码连接
    dbs = client.list_database_names()     #读取 MongoDB 中的所有数据库
    print(dbs)  #['admin', 'config', 'local']
except Exception as e:
    print(str(e))

  • 启用认证。
  1. 修改配置文件。取消注释 security ,并使用 authorization: enabled 开启认证。
  2. 停止正在运行的 MongoDB 服务,重新启动 MongoDB 服务,确保配置文件修改生效。
  3. 在 python 文件中写代码创建管理员、设置密码并赋予权限。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://localhost:27017/")
    admin_db = client["admin"]  #admin数据库中创建管理员

    #创建管理员用户
    admin_db.command(
        "createUser",
        "root",  #user
        pwd="test123123",   #password
        roles=["root"]   #最高权限
    )
    print("管理员用户已创建")
    
except Exception as e:
    print(str(e))
  • 生效后。再执行之前的无密码连接就会提示验证失败:Command listDatabases requires authentication, full error: {'ok': 0.0, 'errmsg': 'Command listDatabases requires authentication', 'code': 13, 'codeName': 'Unauthorized'} 。
  • 只需创建 MongoDB 连接时带上用户名与密码即可。
python 复制代码
from pymongo import MongoClient

try:
    client = MongoClient("mongodb://root:test123123@localhost:27017/")  #启用security认证
    dbs = client.list_database_names()   #读取 MongoDB 中的所有数据库
    print(dbs)  #['admin', 'config', 'local']
    admin_db = client["admin"]  #选择admin数据库
    users_collection = admin_db["system.users"]  #获取系统用户集合
    root_user = users_collection.find_one({"user": "root"})   #获取root用户信息,返回单个文档
    print(root_user)
except Exception as e:
    print(str(e))

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读2 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
这个DBA有点耶2 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G2 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备2 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
只睡四小时2 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
科创致远2 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程