mongodb的架构繁多,有standalone到sharding;每种不同架构都可以建立自己的用户;特别是由standalone升级到sharding 到底哪种用户呢,有哪些冲突呢。
其实mongo大致分2类用户:本地用户(副本集为单位),分片集群用户(管理多副本)
Sharded Cluster Users
大部分操作可以通过mongos连接到分片集群操作,如:CRUD,balancer。
用户信息存储在config server admin库
mongo --port 27000 --host 127.0.0.1
use admin;
db.createUser({
user:'admin',pwd:'Admin@01',
roles:[
{role:'clusterAdmin',db:'admin'},
{role:'userAdminAnyDatabase',db:'admin'},
{role:'dbAdminAnyDatabase',db:'admin'},
{role:'readWriteAnyDatabase',db:'admin'}
]});
Shard Local Users
对于某些操作来说,必须直连到本地分片副本来操作
如:cleanupOrphaned, compact, rs.reconfig(),db.stepdown(),db.shutdownServer()
mongo --port 27019 --host 127.0.0.1
use admin;
db.createUser(
{
user: "rs03Admin",
pwd: passwordPrompt(),
roles: [
{role:'clusterAdmin',db:'admin'},
{ role: "userAdmin", db: "admin" }
]
}
)
权限参考
read:允许用户只读操作指定的数据库。
readWrite:用户可以读写指定的数据库以及进行其他写操作。
dbAdmin:拥有这个权限的用户可以进行数据库管理相关的操作,包括但不限于索引创建、删除以及查看统计信息。
dbOwner:具有对整个数据库的全部权限,这通常意味着该用户是数据库的所有者。
userAdmin:能够创建、删除和管理用户账户。
clusterAdmin:这是一个高级权限,仅在 admin 数据库中使用,它允许用户管理分片和复制集的相关函数。
比较奇怪的是我设置 security.authorization: “disabled” 在创建用户后即要开始密码验证(V4.4.28);通常应该是security.authorization: "enabled"才需要密码验证
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




