https://www.cnblogs.com/mymelody/p/5906199.html
环境
MongoDB shell version: 3.2.6
Win 7
设置方法
用户权限设置
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
net stop mongodb;
net start mongodb;
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 Options
systemLog:
# verbosity: 0 #Default: 0; 1 to 5 increases the verbosity level to include Debug messages.
# quiet: # traceAllException: # syslogFacility: user
path: "/usr/local/mongodb/log/mongod.log" logAppend: true# logRotate: #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: # write:
# verbosity: 0#
#
########ProcessManagement Options
processManagement:
fork: true pidFilePath: "/usr/local/mongodb/log/mongod.pid"#
#
#########Net Options
net:
port: 27017# bindIp: #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: # deprecated since 2.6# mode: # PEMKeyFile: # PEMKeyPassword: # clusterFile: # clusterPassword: # CAFile: # CRLFile: # allowConnectionsWithoutCertificates: # allowInvalidCertificates: # allowInvalidHostnames: false# FIPSMode: #
#
########security Options
#security:
# keyFile: # clusterAuthMode: keyFile
# authorization: disable
# javascriptEnabled: true########security.sasl Options
# sasl:
# hostName: # serviceName: # saslauthdSocketPath: #
#
#########setParameter Option
setParameter:
enableLocalhostAuthBypass: false# : # : #
#
#########storage Options
storage:
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: # commitIntervalMs: 100 # 100 or 30#########storage.wiredTiger Options
# wiredTiger:
# engineConfig:
# cacheSizeGB: #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: # replSetName: # secondaryIndexPrefetch: all
#
#
##########sharding Options
#sharding:
# clusterRole: #configsvr or shardsvr
# archiveMovedChunks: True
#
#
#########auditLog Options
#auditLog:
# destination: #syslog/console/file
# format: #JSON/BSON# path: # filter: #
#
#########snmp Options
#snmp:
# subagent: # master: #
#
########mongos-only Options
#replication:
# localPingThresholdMs: 15#
#sharding:
# autoSplit: true# configDB: # chunkSize: 64#
#
########Windows Service Options
#processManagement:
# windowsService:
# serviceName: # displayName: # description: # serviceUser: # servicePassword: