为MongoDB添加身份验证

MongoDB 默认没有开户身份验证,除非不开放外网访问,否则这种模式极不安全,现纪录添加身份验证步骤如下:

配置创建用户的时候,需要关闭:

#security:
##副本集之间通信用到的认证文件
# keyFile: /home/soft/mongodb-linux-x86_64-rhel62-3.4.2-shard2/mongo-key
# clusterAuthMode: "keyFile"
##开启身份验证
# authorization: "enabled"

因为你要用use admin,如果你打开授权的话,你又没有密码。故。。。

1:在添加验证之前,先运行mongo创建一个管理员用户,否则开户验证后无法登录


use admin

db.createUser(

  {

    user: "root",

    pwd: "abc123",

    roles: [ { role: "root", db: "admin" } ]

  }

)

有关可用权限列表,参见:https://docs.mongodb.org/manual/reference/built-in-roles/

2:导出keyfile(用于集群之间验证身份),并拷贝到各个机器中

导出认证key文件


openssl rand -base64 741 > mongo-key

chmod 600 mongo-key  #这里必须是600

3:停止mongod线程   ./mongod -f mongod.conf --shutdown

4:在mongod.conf文件中添加如下配置:

添加mongodb用户


 

security:

   ##副本集之间通信用到的认证文件

   keyFile: /home/soft/mongodb-3.2.1/mongo-key

   clusterAuthMode: "keyFile"

   ##开启身份验证

   authorization: "enabled"

5:启动mongod

6:启动mongo

7:现在添加其他用途的用户,但首先必须进行身份认证

认证并添加用户


use admin;

db.auth("root""abc123");

创建用户前,首先要切换到要创建用户的数据库,否则会创建到当前库中

use datacenter_qc;

db.createUser({//创建一个可读写datacenter_qc库的用户

    user: "candao_sys",

    pwd: "candao2016",

    roles: [{ role: "dbOwner", db: "datacenter_qc" }]

});

db.createUser({//创建一个只读用户

    user: "candao_user",

    pwd: "candao_2016",

    roles: [{ role: "read", db: "datacenter_qc" }]

});

 

这里需要注意: db,qc环境为:datacenter_qc,正式环境就是:datacenter_release

8:现在在代码中连接数据库时需要指定用户和密码了


修改前:mongodb://192.168.86.73:27017/datacenter_qc?replicaSet=candao_qc

修改后:mongodb://candao_sys:[email protected]:27017/datacenter_qc?replicaSet=candao_qc&authSource=datacenter_qc

时间: 2025-01-04 09:03:33

为MongoDB添加身份验证的相关文章

用Retrofit发送请求中添加身份验证

用Retrofit发送请求中添加身份验证====================在安卓应用开发中, retrofit可以极大的方便发送http网络请求,不管是GET, POST, 还是PUT, DELETE, Retrofit使用起来都非常简单.只要稍微看一下文档,就知道怎么用.但文档没有具体说明怎么怎么发送带auth信息的请求.本文分享两个代码片段. 比如要发送这样的请求,在header中添加身份验证信息,用户名和密码: http -a user1:user1password POST htt

初识Identity并添加身份验证管理页面

目录 初识Identity并添加身份验证管理页面 前言 什么是ASP.NET Core Identity 创建带有身份验证的WebApp 尝试运行 检查解决方案中的项目文件 发现问题 原因 解决问题 @ 初识Identity并添加身份验证管理页面 前言 在使用ASP.NET Core2.2创建WebApp这篇教程中,我们使用dotnet new命令创建了一个没有身份验证管理的WebApp,通常情况下是无法满足我们对敏感页面控制的要求,典型的安全使用场景就是后台管理. 在这一篇中,我们将通过命令尝

ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介

概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware.CustomizeMiddleware和Asp.NetCore Identity.但是由于所有的ASP.NET Core的版本有些老,所以,此次重写一次.使用最新的ASP.NET Core 1.1版本.对于ASP.NET Core 1.1 Preview 1会在以后的文章中介绍 目录 使用静态文件 使用路由

与身份验证HTTP服务器通信(Communicating with Authenticating HTTP Servers)

本文描述了如何利用CFHTTPAuthentication API与需要身份验证的HTTP服务器通信.它解释了如何找到匹配的验证对象和证书,并将它们应用到HTTP请求,然后存储以供以后使用. 一般来说,如果一个HTTP服务器返回一个401或407响应你的HTTP请求,这表明服务器进行身份验证需要证书.在CFHTTPAuthentication API中,每个证书组存储在CFHTTPAuthentication 对象中.因此,每个不同的身份认证服务器和每个不同用户连接的服务器需要一个单独的CFHT

详解Angular开发中的登陆与身份验证

前言 由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更需要注意验证的时机,并保证只有通过了验证的用户才能看到对应的界面. 本篇文章中的身份验证,指的是如何确定用户是否已经登陆,并确保在每次与服务器的通信中,都能够满足服务器的验证需求.注意,并不包括对具体是否具有某一个权限的判断. 对于登陆,主要是接受用户的用户名密码输入,提交到服务器进行验证,处理验证响应,在浏览器端构建身份验证数据. 实现身份验证的两种方式 目前,实现身份验证的方法,主要有两个大类: Co

AspNetCore2身份验证

1.在Startup类的Configure方法,添加身份验证的中间件AuthenticationMiddleware app.UseAuthentication(); 2.在Startup类的ConfigureServices方法,添加Cookie验证的服务,使用Cookies验证体系, CookieAuthenticationDefaults.AuthenticationScheme="Cookies" services.AddAuthentication(CookieAuthent

配置web服务基本用户身份验证,保证web站点的安全

IIS网站默认允许所有用户连接,如果对网站的安全性要求较高,网站只针对特定用户开放,就需要对用户进行验证.进行验证的主要方法有:匿名身份验证.基本身份验证.摘要式身份验证.Windows身份验证.这里只介绍如何配置基本身份验证.一.添加身份验证模块.1.打开"服务器管理器",点击"添加角色服务".2.在"安全性"中勾选要安装的3种身份验证方法,这里我已经安装过了.然后按照操作向导的提示完成即可.二.关闭匿名身份验证,启用基本身份验证.4种身份验证

asp.net core 3.x 身份验证-2启动阶段的配置

注册服务.配置选项.添加身份验证方案 在Startup.ConfigureServices执行services.AddAuthentication() 注册如下服务(便于理解省略了部分辅助服务): services.TryAddScoped<IAuthenticationService, AuthenticationService>(); services.TryAddScoped<IAuthenticationHandlerProvider, AuthenticationHandler

IdentityServer4 使用OpenID Connect添加用户身份验证

使用IdentityServer4 实现OpenID Connect服务端,添加用户身份验证.客户端调用,实现授权. IdentityServer4 目前已更新至1.0 版,在之前的文章中有所介绍.IdentityServer4 ASP.NET Core的OpenID Connect OAuth 2.0框架学习保护API . 本文环境:IdentityServer4 1.0  .NET Core 1.0.1 下面正式开始. 新建IdentityServer4服务端 服务端也就是提供服务,如QQ