MongoDB设置口令访问

1. 概述

mongodb默认情况下没有设置口令,存在风险

 2. 权限详解

权限详解
内建角色:
数据库用户角色:read、readWrite;
数据库管理角色:dbAdmin、dbOwner、userAdmin;
集群管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManager;
备份恢复角色: backup、restore;
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色: root; 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色: __system;
------------------------------------------------------------------------------------------

角色说明:
Read: 允许用户读取指定数据库
readWrite: 允许用户读写指定数据库
dbAdmin: 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin: 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
dbOwner: 允许在当前DB中执行任意操作
readAnyDatabase: 赋予用户所有数据库的读权限,只在admin数据库中可用
readWriteAnyDatabase: 赋予用户所有数据库的读写权限,只在admin数据库中可用
userAdminAnyDatabase:赋予用户所有数据库管理User的权限,只在admin数据库中可用
dbAdminAnyDatabase: 赋予管理所有数据库的权限,只在admin数据库中可用
root: 超级账号,超级权限,只在admin数据库中可用。
------------------------------------------------------------------------------------------
集群管理角色:
clusterAdmin: 赋予管理集群的最高权限,只在admin数据库中可用
clusterManager: 赋予管理和监控集群的权限
clusterMonitor: 赋予监控集群的权限,对监控工具具有readonly的权限
hostManager: 赋予管理Server

 3. 设置口令

./mongo --port 20771

use admin

db.createUser({user:'root',pwd:'123456',roles:['userAdminAnyDatabase','dbAdminAnyDatabase','root']})

db.createUser({user:'root',pwd:'123456',roles:['userAdminAnyDatabase','dbAdminAnyDatabase','root']})

#userAdminAnyDatabase是管理用户的管理员权限

#dbAdminAnyDatabase是管理所有数据库的管理员权限

##

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

##修改用户权限

db.updateUser("root",{roles:['userAdminAnyDatabase','dbAdminAnyDatabase','root' ]})

 4. 修改配置文件,添加绿色标注内容以启用授权

bind_ip=0.0.0.0

auth=true

fork=true

port=20771

dbpath=/usr/local/mongodb-linux-x86_64-4.0.8/data/

logpath=/usr/local/mongodb-linux-x86_64-4.0.8/log/mongo.log


###或者还有一种写法是这种

# mongod.conf

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

# Where and how to store data.
storage:
  dbPath: E:\Mongodb\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  E:\Mongodb\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

security:
  authorization: enabled


#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

 5. 重启mongodb

 6. 测试口令访问

或者用这个命令测试

./bin/mongo --port 20771 -u root -p md@@0022

 

7.修改密码

db.changeUserPassword('root','mdMD0022')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值