mongodb 3.2 用户权限管理配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔。 最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入,特记录备查。

使用mongodb 有段时间了,由于是在内网使用,便没有设置权限,一直是裸奔。

最近有时间,研究了下mongodb 3.2 的用户权限配置,网上有许多用户权限配置的文章,不过大多是之前版本,有些出入,特记录备查。

环境

MongoDB shell version: 3.2.6

CentOS release 6.8 (Final)

设置方法 用户权限设置

1、进入mongodb的shell : mongo

2、切换数据库: use admin

从3.0 版本起,默认只有 local库,没有 admin库,需要我们自己来创建。

3、添加用户,指定用户的角色和数据库: db.createUser( { user: "admin", customData:{description:"superuser"}, pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) user字段,为新用户的名字;pwd字段,用户的密码;cusomData字段,为任意内容,例如可以为用户全名介绍;roles字段,指定用户的角色,可以用一个空数组给新用户设定空角色。在roles字段,可以指定内置角色和用户定义的角色。

4、查看创建的用户 : show users或 db.system.users.find()

5、启用用户权限:

修改配置文件,增加配置:

security: authorization: enabled

重新启动mongodb, /etc/init.d/mongod restart

6、用户验证使用:

启用用户验证后,再次登录mongo shell ,执行 show dbs等命令会提示“没有权限”。此时,需要用户验证登录。

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

官方详情角色说明 –> 传送门

配置文件示例

官方详解 –> 传送门

#此处为配置文件可配置的内容#Mongod config file #MongoDB configuration files use the YAML format.#The following example configuration file contains several mongod settings.#########Example Start#########systemLog:# destination: file# path: "/var/log/mongodb/mongodb.log"# logAppend: true#storage:# journal:# enabled: true#processManagement:# fork: true#net:# bindIp: 127.0.0.1# port: 27017#setParameter:# enableLocalhostAuthBypass: false#########Example End#################Core OptionssystemLog:# verbosity: 0 #Default: 0; 1 to 5 increases the verbosity level to include Debug messages.# quiet: <boolean># traceAllException: <boolean># syslogFacility: user path: "/usr/local/mongodb/log/mongod.log" logAppend: true# logRotate: <string> #rename or reopen destination: file# timeStampFormat: iso8601-local# component:# accessControl:# verbosity: 0# command:# verbosity: 0# # COMMENT additional component verbosity settings omitted for brevity# storage:# verbosity: 0# journal:# verbosity: <int># write:# verbosity: 0##########ProcessManagement OptionsprocessManagement: fork: true pidFilePath: "/usr/local/mongodb/log/mongod.pid"###########Net Optionsnet: port: 27017# bindIp: <string> #Default All interfaces.# maxIncomingConnections: 65536# wireObjectCheck: true# ipv6: false# unixDomainSocket:# enabled: true# pathPrefix: "/tmp"# filePermissions: 0700# http:# enabled: false# JSONPEnabled: false# RESTInterfaceEnabled: false# ssl:# sslOnNormalPorts: <boolean> # deprecated since 2.6# mode: <string># PEMKeyFile: <string># PEMKeyPassword: <string># clusterFile: <string># clusterPassword: <string># CAFile: <string># CRLFile: <string># allowConnectionsWithoutCertificates: <boolean># allowInvalidCertificates: <boolean># allowInvalidHostnames: false# FIPSMode: <boolean>##########security Options#security:# keyFile: <string># clusterAuthMode: keyFile# authorization: disable# javascriptEnabled: true########security.sasl Options# sasl:# hostName: <string># serviceName: <string># saslauthdSocketPath: <string>###########setParameter OptionsetParameter: enableLocalhostAuthBypass: false# <parameter1>: <value1># <parameter2>: <value2>###########storage Optionsstorage: dbPath: "/data/db"# indexBuildRetry: true# repairPath: "/data/db/_tmp"# journal:# enabled: true# directoryPerDB: false# syncPeriodSecs: 60 engine: "mmapv1" #Valid options include mmapv1 and wiredTiger.#########storage.mmapv1 Options# mmapv1:# preallocDataFiles: true# nsSize: 16# quota:# enforced: false# maxFilesPerDB: 8# smallFiles: false# journal:# debugFlags: <int># commitIntervalMs: 100 # 100 or 30#########storage.wiredTiger Options# wiredTiger:# engineConfig:# cacheSizeGB: <number> #Default: the maximum of half of physical RAM or 1 gigabyte# statisticsLogDelaySecs: 0# journalCompressor: "snappy"# directoryForIndexes: false# collectionConfig:# blockCompressor: "snappy"# indexConfig:# prefixCompression: true############operationProfiling Options#operationProfiling:# slowOpThresholdMs: 100# mode: "off"############replication Options#replication:# oplogSizeMB: <int># replSetName: <string># secondaryIndexPrefetch: all############sharding Options#sharding:# clusterRole: <string> #configsvr or shardsvr# archiveMovedChunks: True###########auditLog Options#auditLog:# destination: <string> #syslog/console/file# format: <string> #JSON/BSON# path: <string># filter: <string>###########snmp Options#snmp:# subagent: <boolean># master: <boolean>##########mongos-only Options#replication:# localPingThresholdMs: 15##sharding:# autoSplit: true# configDB: <string># chunkSize: 64##########Windows Service Options#processManagement:# windowsService:# serviceName: <string># displayName: <string># description: <string># serviceUser: <string># servicePassword: <string>

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
6月前
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
380 0
|
5月前
|
JSON NoSQL MongoDB
Rockmongo详解:高效管理MongoDB的图形化利器
Rockmongo详解:高效管理MongoDB的图形化利器
107 0
|
3月前
|
NoSQL MongoDB Windows
MongoDB 读写分离——Windows MongoDB 副本集配置
MongoDB 读写分离——Windows MongoDB 副本集配置
57 0
|
4月前
|
存储 NoSQL 关系型数据库
MongoDB的配置服务器和复制机制
【7月更文挑战第2天】MongoDB配置服务器存储分片和权限元数据,支持在主节点故障时保持读服务。关键组件,性能影响显著。复制集包含Primary和Secondary,通过oplog实现数据同步,类似MySQL binlog。oplog的幂等性可能导致大量set操作,且大小受限,可能导致从节点需全量同步。读写分离提升效率,主从切换确保高可用。
48 0
|
5月前
|
安全 NoSQL 程序员
老程序员分享:mongodb4.xxx安装,和基本配置
老程序员分享:mongodb4.xxx安装,和基本配置
47 0
|
6月前
|
监控 NoSQL 安全
【MongoDB 专栏】MongoDB 的复制集:高可用性配置
【5月更文挑战第10天】MongoDB的复制集是实现数据高可用性的重要机制,由主节点和次节点构成,主节点处理写操作,次节点同步数据确保一致。在主节点故障时,次节点自动提升接替,保证服务不间断。通过复制集,可实现数据保护、持续服务,适用于关键业务系统和数据备份。配置时需关注网络稳定性、节点性能和数据一致性。案例显示,复制集能有效保障服务高可用,防止数据丢失和业务中断,是现代数据库管理的关键工具。在数据驱动的世界,复制集为高可用性提供了坚实保障。
136 0
【MongoDB 专栏】MongoDB 的复制集:高可用性配置
|
5月前
|
存储 JSON NoSQL
MongoDB 插入文档:轻松管理数据录入与批量导入
MongoDB 插入文档:轻松管理数据录入与批量导入
|
6月前
|
DataWorks NoSQL 关系型数据库
DataWorks操作报错合集之在使用 DataWorks 进行 MongoDB 同步时遇到了连通性测试失败,实例配置和 MongoDB 白名单配置均正确,且同 VPC 下 MySQL 可以成功连接并同步,但 MongoDB 却无法完成同样的操作如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
100 1
|
6月前
|
存储 缓存 NoSQL
|
6月前
|
运维 NoSQL Linux
MongoDB详解(六)——MongoDB主从同步配置
MongoDB详解(六)——MongoDB主从同步配置
260 5