mongoDB (四) mongoDB认证
时间:2022-07-25
本文章向大家介绍mongoDB (四) mongoDB认证,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
mongoDB认证
单节点认证
- 配置文件: authorization: enable
[root@centos7-node4 ~]# vim /data/mongodb/27017/mongodb.conf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/27017/mongodb.log
storage:
dbPath: /data/mongodb/27017/
journal:
enabled: true
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
security:
authorization: enabled
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27017/mongodb.conf #启动服务
- 登录报错
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017
> use test
switched to db test
> db.mydata.insert({id:1})
WriteCommandError({
"ok" : 0,
"errmsg" : "not authorized on test to execute command { insert: "mydata", ordered: true, lsid: { id: UUID("84740c59-f4ff-4fe5-879d-d10679b0f355") }, $db: "test" }",
"code" : 13,
"codeName" : "Unauthorized"
})
>
- 解决办法
> use admin
> db.createUser({
... user: "admin",
... pwd: "qwer1234QAZ",
... roles: [ { role: "root",db: "admin" } ]
... })
> use admin
> db.auth('admin','qwer1234QAZ')
> use test
> db.mydata.insert({id:"1"}) #插入数据测试
- 登录认证
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017 -uadmin -pqwer1234QAZ --authenticationDatabase admin
副本集认证
- 副本集的数据同步使用密钥
- 副本集搭建完成之后再创建用户
证书准备
[root@centos7-node4 ~]# openssl rand -base64 756 > /data/mongodb/cluster.key
[root@centos7-node4 ~]# chmod 700 /data/mongodb/cluster.key
环境说明
三台副本集机器,设置好各自的端口:27017,27018,27019 我这边先用单节点三副本配置: 其余的配置文件改成对应端口和目录即可
[root@centos7-node4 ~]# mkdir /data/mongodb/{27017,27018,27019} -pv
[root@centos7-node4 ~]# vim /data/mongodb/27017/mongodb.conf
systemLog:
destination: file
logAppend: true
path: /data/mongodb/27017/mongodb.log
storage:
dbPath: /data/mongodb/27017/
journal:
enabled: true
processManagement:
fork: true
net:
port: 27017
bindIp: 0.0.0.0
replication:
replSetName: cluster
security:
keyFile: /data/mongodb/cluster.key
authorization: enabled
- 启动服务
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27017/mongodb.conf
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27018/mongodb.conf
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongod -f /data/mongodb/27019/mongodb.conf
- 初始化
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017
> use admin
> config = { _id:"cluster", members:[ {_id:0,host:"127.0.0.1:27017"}, {_id:1,host:"127.0.0.1:27018"}, {_id:2,host:"127.0.0.1:27019"}] }
> rs.initiate(config) # 初始化
cluster:SECONDARY> rs.status()
- 副本集认证开启
cluster:PRIMARY> use admin
cluster:PRIMARY> db.createUser({
... user: "admin",
... pwd: "qwer1234QAZ",
... roles: [ {role: "root",db:"admin"} ]
... })
> use admin
> db.auth('admin','qwer1234QAZ')
> use test
> db.mydata.insert({id:"1"})
- 认证登录
[root@centos7-node4 ~]# /usr/local/mongodb/bin/mongo 127.0.0.1:27017 -uadmin -pqwer1234QAZ --authenticationDatabase admin
分片配置认证
- router不需要配置认证,但是得配置keyFile
- configsvr和shardsvr需要配置认证和keyFile
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 2015年javaB组1-4题解析与理解
- 【matplotlib】绘制散点图
- LeetCode刷题心得 -- map的妙用
- 2015javaB组第五题表格计算
- 【线性回归】读取txt
- 走近STL - Vector,再次见面
- 【线性回归】标准方程法
- 133: error: in C++98 XXX must be initialized by constructor, not by '{...}'
- spring之如何将验证错误信息显示在相应界面
- 【python-leetcode329-深度优先搜索】矩阵中的最长递增路径
- 带权树 -- 哈夫曼树,与它的那张哈夫曼编码表
- 【python-动态规划】0-1背包问题
- python之列表推导和生成器表达式
- 二叉树的前中后序遍历
- 【tensorflow2.0】处理结构化数据-titanic生存预测