在集群中如何添加用户并设置其权限呢? 大家都知道配置了集群环境,数据库链接串中的地址是是指向mongos。 mongos实例本身不存储数据。但是有其自己独立的用户体系。 也就是说如果在mongos中配置了用户, 是无法单独登录其分片节点的。
所以建议每一个分片都添加用户,最后在mongos上再添加针对集群的用户权限。这样做的目的是: 如果登录集群直接使用mongos的用户体系即可。不用考虑每个分片上的用户。 就可以访问数据等操作。 如果需要设置某个分片的某个设置。例如:开启分片的
记录满日志操作。这个时候必须登录到分片的主节点去设置。无法通过链接mongos去操作具体分片的设置。 如果你只设置了mongos用户。没有设置分片的用户。此时。只能重新停止服务重新建立用户。给自己带来很多麻烦。
上面可能说的比较晦涩,大家不易理解。其实意思就是: 在mongodb的集群环境中程序链接集群是通过mongos节点。 所以需要在mongos上设置用户和权限。 如果需要登录具体的分片服务器。需要使用分片中的用户体系。 这两个用户体系是独立的。
如果不设置用户验证。那就无所谓了。
下面列出创建用户和权限的命令
db.createUser(
{ user: "administrator",
pwd: "13579@$^*)",
customData: { "admin":"administrator" },
roles: [
{ role: "dbOwner", db: "admin" }
]
}
)
把用户创建在了admin数据库中。角色:dbOwner。 customData : 数据描述。
针对所有数据库的
其他角色:
root:全部权限,相当于下面四个的组合。权限最大。
readAnyDatabase: 针对所有数据库只读
readWriteAnyDatabase:针对所有数据库读写
userAdminAnyDatabase:针对所有数据库的用户管理
dbAdminAnyDatabase:针对所有数据库的管理权限