MongoDB的安全验证

1. MongoDB建立用户角色及开启验证

先启动单例的mongodbspring

[root@service ~]# mongod -f mongodb.confmongodb

以配置的方式启动数据库

 

 

配置文件以下springboot

systemLog: #MongoDB发送全部日志输出的目标指定为文件 destination: file #mongod或mongos应向其发送全部诊断日志记录信息的日志文件的路径 path: "/home/log/mongod.log" #当mongos或mongod实例从新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。 logAppend: true storage: #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。 dbPath: "/home/data" journal: #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 enabled: true processManagement: #启用在后台运行mongos或mongod进程的守护进程模式。 fork: true #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID pidFilePath: "/home/log/mongod.pid" net: #服务实例绑定全部IP,有反作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip #bindIpAll: true #服务实例绑定的IP 注意ip必须存在否启动不了mongoDB bindIp: localhost,192.168.85.154 #bindIp #绑定的端口 port: 27017

 

 

MongoDB的用户在admin数据库中的user集合中,初始化时,没有这个user集合服务器

切换到admin库 app

> use adminspa

 

建立系统超级用户 myroot,设置密码123456,设置角色root  【负责管理用户】3d

添加用户执行在开启权限以前(添加权认证授配置),否则进去客户端没法验证,添加不了用户日志

下面是指定数据库code

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

 

(这个是没有设置数据库权限的)

> db.createUser({user:"myroot",pwd:"123456",roles:["root"]})

 

建立专门用来管理admin库的帐号myadmin,只用来做为用户权限的管理

> db.createUser({user:"czx",pwd:"123456",roles: [{role:"userAdminAnyDatabase",db:"admin"}]})

 

修改配置开启验证(在配置文件添加受权认证 配置

受权认证(注意格式,相似于springboot的yml配置的格式)

security:
   #开启受权认证
   authorization: enabled

 

验证命令:(用来设置验证,也能够用来执行验证)

须要切换到admin数据库进行验证

这里的用户名和密码是进行权限验证读写数据库数据的

>db.auth("用户名","密码")

 

客户端从新链接时,须要验证用户名和密码,不然查看不到数据库和集合

【注意:验证失败时,须要切换数据库,好比切换到admin】

 

查看用户

 

进入客户端须要切换到admin数据库进行权限验证才能读写数据

 

删除用户( myroot:用户名 )

> db.dropUser("myroot")

 

2. Spring Data链接

使用用户名和密码链接到 MongoDB 服务器,你必须使用'username:password@hostname/dbname' 格式,'username'为用户名,'password' 为密码。 目标:使用用户czx使用密码 123456 链接到MongoDB 服务上。

 

配置文件以下

application.yml:
spring: #数据源配置 data: mongodb: # 主机地址 host: 180.76.159.126 # 数据库 database: articledb # 默认端口是27017 port: 27017 #账号 username: ckf_user #密码 password: 123456

 

 

yml配置,单例配置 本地把ip改为hocalhost

spring: data: mongodb: uri: mongodb://ckf_user:123456@192.168.85.154:27017/attend_db

 

 

先切换admin数据库登陆获取权限 再切换到须要权限的数据库(项目的数据库)执行添加用户,设置用户名和密码(read:读)下面的用户名对应着yml配置的用户名

添加用户以下(给数据库获取)

>db.createUser({user:"ckf_user",pwd:"123456",roles:[{role:"readWrite",db:"test"},{role:"readWrite",db:"attend_db"},'read']})

 

       

  不足的地方请多多指教哦 

相关文章
相关标签/搜索