当前位置:网站首页>MongoDB的用户管理总结
MongoDB的用户管理总结
2022-07-07 11:17:00 【cui_yonghua】
基础篇(能解决工作中80%的问题):
进阶篇:
其它:
一. mongodb用户
1.1 用户管理接口
要添加用户,可使用MongoDB提供的db.createUser()方法。 添加用户时,可以为用户分配角色以授予权限。
注意:在数据库中创建的第一个用户应该是具有管理其他用户的权限的用户管理员。
还可以更新现有用户,例如更改密码并授予或撤销角色。
1.2 验证数据库
添加用户时,可以在特定数据库中创建用户。该数据库是用户的认证的数据库。
用户可以跨不同数据库拥有权限; 即用户的权限不限于认证数据库。 通过分配给其他数据库中的用户角色,在一个数据库中创建的用户可以拥有对其他数据库的操作权限。
用户名和认证数据库作为该用户的唯一标识符。 也就是说,如果两个用户具有相同的名称,但是在不同的数据库中创建,则它们是两个不同的用户。 如果您打算拥有具有多个数据库权限的单个用户,请在适用的数据库中创建具有角色的单个用户,而不是在不同数据库中多次创建用户。
1.3 认证用户
要验证用户,也可以在连接到 mongod 或 mongos 实例时使用命令行身份验证选项(例如:-u,-p,–authenticationDatabase)先连接到 mongod 或 mongos 实例,然后针对身份验证数据库运行 authenticate 命令或db.auth()方法。
要进行身份验证,客户端必须对用户的身份验证数据库进行身份验证。
例如,如果使用 mongo shell作为客户端,则可以使用–authenticationDatabase选项为用户指定身份验证数据库。
二、配置账号和密码
2.1 开启认证
MongoDB 默认安装完成以后,只允许本地连接,同时不需要使用任何账号密码就可以直接连接MongoDB,这样就容易被黑,让支付一些比特币,所以为了避免这些不必要的麻烦,所以我们需要给Mongo设置一个账号密码;
2.2 创建管理员用户
> use admin
switched to db admin
> db.createUser({
user:"admin",pwd:"password",roles:["root"]})
Successfully added user: {
"user" : "admin", "roles" : [ "root" ] }
2.3 认证登录
> db.auth("admin", "password")
2.4 MongoDB role 类型
数据库用户角色(Database User Roles)
read
:授予User只读数据的权限
readWrite
:授予User读写数据的权限
数据库管理角色(Database Administration Roles):
dbAdmin
:在当前dB中执行管理操作
dbOwner
:在当前DB中执行任意操作
userAdmin
:在当前DB中管理User
备份和还原角色(Backup and Restoration Roles):
backup
restore
跨库角色(All-Database Roles):
readAnyDatabase
:授予在所有数据库上读取数据的权限
readWriteAnyDatabase
:授予在所有数据库上读写数据的权限
userAdminAnyDatabase
:授予在所有数据库上管理User的权限
dbAdminAnyDatabase
:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):
clusterAdmin
:授予管理集群的最高权限
clusterManager
:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor
:授予监控集群的权限,对监控工具具有readonly的权限
hostManager
:管理Server
2.5 添加数据库用户
> use flowpp
switched to db flowpp
> db.createUser({
user: "flowpp", pwd: "flopww", roles: [{
role: "dbOwner", db: "flowpp" }]}) # 创建用户flowpp,设置密码flopww,设置角色dbOwner
2.6 查看系统用户
> use admin
switched to db admin
> db.system.users.find() # 显示当前系统用户
{
"_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000, "salt" : "9jXmylyRAK22TZmzv1Thig==", "storedKey" : "z76cVrBjX/CTFmn5RujtU+dz7Nw=", "serverKey" : "JQGonM84iDMI1nIXW7FdyOE55ig=" } }, "roles" : [ {
"role" : "root", "db" : "admin" } ] }
{
"_id" : "flowpp.flowpp", "user" : "flowpp", "db" : "flowpp", "credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000, "salt" : "KvocqWZA9E2tXBHpKpdAeQ==", "storedKey" : "50Kxc3LEgCSVN1z16S8g4A6jVp8=", "serverKey" : "0RSnsxd/7Yzmqro/YOHf/kfbHCk=" } }, "roles" : [ {
"role" : "dbOwner", "db" : "flowpp" } ] }
2.7 删除用户
# 删除用户的时候需要切换到用户管理的数据库才可以删除;
1.切换admin ,删除用户flowpp ,删除失败> use admin
switched to db admin
> db.dropUser("flowpp")
false2.切换flowpp ,删除用户flowpp,删除成功
> use flowpp
switched to db flowpp
> db.dropUser("flowpp")
true
边栏推荐
- How to reset Firefox browser
- 10 张图打开 CPU 缓存一致性的大门
- 达晨与小米投的凌云光上市:市值153亿 为机器植入眼睛和大脑
- Milkdown 控件图标
- 【Presto Profile系列】Timeline使用
- 服务器到服务器 (S2S) 事件 (Adjust)
- regular expression
- DETR介绍
- Find ID value MySQL in string
- 2022 examination questions and online simulation examination for safety production management personnel of hazardous chemical production units
猜你喜欢
Aosikang biological sprint scientific innovation board of Hillhouse Investment: annual revenue of 450million yuan, lost cooperation with kangxinuo
MySQL master-slave replication
Cinnamon Applet 入门
明星企业普渡科技大裁员:曾募资超10亿 腾讯红杉是股东
2022a special equipment related management (boiler, pressure vessel and pressure pipeline) simulated examination question bank simulated examination platform operation
HZOJ #240. Graphic printing IV
Milkdown 控件图标
Four functions of opencv
DHCP 动态主机设置协议 分析
.Net下极限生产力之efcore分表分库全自动化迁移CodeFirst
随机推荐
学习突围2 - 关于高效学习的方法
- Oui. Migration entièrement automatisée de la Sous - base de données des tableaux d'effets sous net
How to reset Google browser? Google Chrome restore default settings?
centso7 openssl 报错Verify return code: 20 (unable to get local issuer certificate)
解决缓存击穿问题
处理链中断后如何继续/子链出错removed from scheduling
[crawler] avoid script detection when using selenium
regular expression
Awk of three swordsmen in text processing
Practical case: using MYCAT to realize read-write separation of MySQL
Sequoia China completed the new phase of $9billion fund raising
[learn wechat from 0] [00] Course Overview
10 张图打开 CPU 缓存一致性的大门
2022a special equipment related management (boiler, pressure vessel and pressure pipeline) simulated examination question bank simulated examination platform operation
The URL modes supported by ThinkPHP include four common modes, pathinfo, rewrite and compatibility modes
博文推荐|Apache Pulsar 跨地域复制方案选型实践
Unity 构建错误:当前上下文中不存在名称“EditorUtility”
Isprs2021/ remote sensing image cloud detection: a geographic information driven method and a new large-scale remote sensing cloud / snow detection data set
Milkdown 控件图标
关于 appium 如何关闭 app (已解决)