mongodb的账户管理
超级管理员
为了更加安全的访问 mongodb,需要访问者提供用户名和密码,于是需要在mongodb 中创建用户
采用了角色-用户-数据库的安全管理方式
常用的的系统角色有:
root: 只在 admin 数据中可使用,超级账户,超级权限。root又称dbOwner
Read: 允许用户读取指定的数据库
readWrite: 允许用户读写指定的数据库
一、创建超级用户
以windows为例
1、启动不鉴权的mongo数据库服务
mongod --port 27017 --dbpath E:\mongo_db
2、创建进入使用admin库名
use admin
3、创建admin用户,密码123,角色为root身份,管理admin数据库
db.createUser( { user: 'admin', pwd: '123', roles:[{role:'root',db:'admin'}] } )
4、关闭mongo数据库服务
ctrl+c
5、带鉴权方式启动
mongod --port 27017 --dbpath E:\mongo_db --auth
6、使用认证某个数据方式终端连接
mongo -u admin -p 123 --authenticationDatabase admin
此后的admin可以查看任何数据
延伸:
1、使用无鉴权方式连接数据库
mongo --port 27017
此后的用户无法查看任何数据
2、如果使用不鉴权方式启动mongo数据库服务
mongod --port 27017 --dbpath E:\mongo_db
则admin账号设置是无效的。
二、普通用户管理
使用超级管理员登录,然后进入用户管理操作
查看当前数据库的用户
use demo
show users
创建普通 用户
db.createUser( { user: 'xingyeah', pwd: '123', roles:[{role:'readWrite',db:'demo'}] } )
退出 root 连接 使用 xignyeah 登录
mongo -u xingyeah -p 123 --authenticationDatabase
切换数据库,执行命令查看效果
三、修改密码和角色
yoghurt:可以修改密码, 或者roles 属性
# 修改密码
db.updateUser('xingyeah',{pwd: '456'})
# 修改属性
db.updateUser('xingyeah',{roles:[{role: 'read',db:'demo'}]})
四、常见报错
Linux
启用安全认证
修改配置文件
sudo vi /etc/mongod.conf
启用身份验证
注意: keys 和 values 之间一定要加空格,否则会解析报错
security:
authorization enabled
相关文章
- MongoDB实战指南:获取数据存储之旅之旅(mongodb实战指南)
- MongoDB安装及目录结构详解(mongodb安装目录)
- :MongoDB管理小文件的简便方法(mongodb小文件)
- MongoDB在数据库管理中的运用(mongodb的应用)
- 限制MongoDB单文档大小限制:解决方案(mongodb单个文档)
- 数据管理MongoDB实现海量数据高效管理(mongodb海量)
- 查询MongoDB实现高效的递归查询(mongodb递归)
- 管理MongoDB中元数据管理的秘诀(mongodb元数据)
- 管理管理MongoDB账号及其密码安全(mongodb账号密码)
- MongoDB:合并多数据源(mongodb合并数据)
- 管理MongoDB权限管理:有效把控数据库安全(mongodb权限)
- MongoDB 日志:如何查看和管理?(mongodblog)
- MongoDB 命令执行: 数据库管理的关键步骤(mongodb命令执行)
- 解密 MongoDB 文档管理:文件目录排查尽在掌握(mongodb文件目录)
- Mongodb快速新建表,更高效管理数据(mongodb新建表)
- 高效管理大量数据:掌握Mongodb批量写入技巧(mongodb批量写入)
- 开启图片无限存储:MongoDB海量图片管理(海量图片mongodb)
- 管理基于 MongoDB 的模型管理方案实践(mongodb模型)
- 如何设置和管理MongoDB集合字段?(mongodb集合字段)
- 使用 MongoDB 实现高效队列管理(mongodb队列)
- 利用MongoDB管理文件系统存储(mongodb文件系统)