首页 > 数据库 > NoSQL > mongodb 的权限系统
mongodb 开启权限认证需要注意的几个点:
ReplSet 下面, 集群的链接,需要 keyfile 看明白了。 是 keyFile 才对 。
1.
keyfile 的内容不能包含 等号 "="
openssl rand 128 最后一个字符是 “=”
大于 128 后面就增加 等号了。
取 90 或者 100 左右或者手工取其中的一部分都行。
openssl rand 90 > keyFile 。
然后复制到各个节点。
权限 0600 .
2.
还有一个问题
systemctl 启动的脚本里面 有关于 几句授权的。 ExecStartPre 那几句确保不要修改 keyFile 的权限。
否则启动错误。
3. 启动集群后, 需要授权给管理员的几个权限问题。
db.createUser (
{
user:'root',
pwd:"passwd",
roles:[ {
role:"userAdminAnyDatabase",db:"admin"
},
{role:"readWriteAnyDatabase",db:"admin"
},
{role:"userAdmin",db:'admin'
},
{role:"dbAdmin",db:'admin'
},
{role:"clusterManager",db:'admin'
}
]
}
)
这是管理员权限 。
如果业务业务用户。
到各自的 业务数据里去授权。
use app
db.createUser { ...
role:[ role:"dbadmin" , db:'app' }
需要 一个 dbadmin de 权限, 否则可能会有点问题。
4. Secodary 库。 链接后,第一句 是 rs.slaveOk()
否则一直爆粗。 别搞忘了。
5. 如果通过阿里云DTS 复制 mongodb 做业务数据同步,
已经要调整 DTS 目标端的写 并发数 , medium 规格的DTS 默认应该是 32个 并发。
让后每个并发 , 批量写 128个 记录。 才提交。 这个是很大的并发量。
如果你的mongodb 资源不太足, 几分钟就压死了。 而且 会持续 几个很久的 cpu 跑满,
rs 的 slave 离线。 无法接入集群等等一系列的古怪问题。
切记。
6. arbitery 节点, 只参与 集群投票,仲裁, 并不参与数据复制
就不需要设置keyfile 跟 安全验证了。 给他安装 exporter 监控的时候, 会导致登录错误。 无法监控。
这个是很重要。
7. 关于 主从切换的问题。 在主从 之间oplog delay =0 或者接近 0 的情况下。
因为我们设置了主库的 priority =2 secondary 库 =1 。
主动停止主库, 会迅速接管到 secondary 变为 primary 。
再次启动 主库的时候, 角色会 在再次换回来。
整个ha 的过程还是相当自在的。
8.
下面是配置文件示例:
# mongod.conf
# for documentation of all options, see:
#
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /app/mongodb/logs/mongod.log
# Where and how to store data.
storage:
dbPath: /app/mongodb/data/db
directoryPerDB: true
journal:
enabled: true
# engine:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /app/mongodb/data/mongod.pid # location of pidfile
timeZoneInfo: /usr/share/zoneinfo
# network interfaces
net:
port: 3717
bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
security:
keyFile: /app/mongodb/data/keyfile/keyfile
authorization: enabled
#operationProfiling:
replication:
replSetName: "Mmp_wuid"
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
setParameter:
replWriterThreadCount: 16
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/133735/viewspace-2912382/ ,如需转载,请注明出处,否则将追究法律责任。