mongodb分片认证
2016-05-26 12:51
441 查看
启动configsvr
1. 确保mongdb的configsvr是采用service模式启动的,即从/etc/init.d下的脚本启动的,其用户是mongod。
2. 确保mongod的配置文件完全相同。
3. 确保整个集群的所有keyFile文件内容相同。
启动mongos
1. 使用以下命令启动,以确保用户切换为mongod:
runuser -s /bin/bash mongod -c '/usr/bin/mongos --configdb confighost-01:27019,confighost-02:27019,confighost-03:27019 --port 27021 --keyFile /data/mongodb/key.d/mongod.key'
2. 如果发生warning: config servers confighost-01:27019 and confighost-03:27019 differ
可以把configdb目录下的内容删除,然后再次运行configsvr服务。
3. 一切正常后,可以把mongos的启动配置写入脚本/etc/init.d/mongos
4. service mongos start
加入分片
请注意一定在未给admin数据库创建任何用户之前至少加入一个分片,否则可能会导致以后无法加入。
sh.addShard("rs-1/host-11.mycloud.com")
sh.addShard("rs-2/host-21.mycloud.com")
为admin用户创建第一个用户
该用户的角色必须是userAdminAnyDatabase
1.在mongos服务器本机登录
mongo --port xxxxx #xxxxx表示mongos的监听端口
use admin
show dbs #这时可以列出数据库
db.createUser({user: "SysAdmin",pwd: "123",roles: [{role: "userAdminAnyDatabase", db:"admin"}]});
这时退出后再以mongo --port xxxxx登录执行show dbs就显示未授权了。
重新登录
可以选择在本机登录,也可以从其他机器登录。
本机登录:mongo localhost:27021/admin -u SysAdmin -p 123
其他机器登录:mongo mongos-server:xxxxx/admin -u SysAdmin -p 123
为test数据库创建用户
在mongos服务器上以管理员身份登录admin数据库:mongo localhost:27021/admin -u SysAdmin -p 123
为test数据库创建管理员用户:db.createUser({user: "yc-admin",pwd: "123",roles: [ { role: "userAdmin", db: "test" }]});
切换到test数据库:use test
以test管理员身份登录到数据库:db.auth("yc-admin", "123")
创建test的其他用户:
只读用户:db.createUser({user: "yc-read",pwd: "123",roles: [ { role: "read", db: "test" }]});
读写用户:db.createUser({user: "yc-write",pwd: "123",roles: [ { role: "readWrite", db: "test" }]});
添加其它分片
切换到admin数据库
use admin
为admin数据库增加userAdmin用户和root角色的用户(假设用户名是admin-root),见上一步。
clusterAdmin用户:db.createUser({user: "yc-cstadmin",pwd: "123",roles: [ { role: "clusterAdmin", db: "admin" }]});
切换到yc-cstadmin用户:db.auth("yc-cstadmin", "123")
添加rs-3分片:sh.addShard("rs-3/host-31.mycloud.com")
注意:
数据库不同的角色具有不同的权限:
read:只读
readWrite:读写
root:所有
userAdmin:用户管理
clusterAdmin:集群管理和监控
添加分片只能由admin数据库的root进行,其它用户都没有该权限。
1. 确保mongdb的configsvr是采用service模式启动的,即从/etc/init.d下的脚本启动的,其用户是mongod。
2. 确保mongod的配置文件完全相同。
3. 确保整个集群的所有keyFile文件内容相同。
启动mongos
1. 使用以下命令启动,以确保用户切换为mongod:
runuser -s /bin/bash mongod -c '/usr/bin/mongos --configdb confighost-01:27019,confighost-02:27019,confighost-03:27019 --port 27021 --keyFile /data/mongodb/key.d/mongod.key'
2. 如果发生warning: config servers confighost-01:27019 and confighost-03:27019 differ
可以把configdb目录下的内容删除,然后再次运行configsvr服务。
3. 一切正常后,可以把mongos的启动配置写入脚本/etc/init.d/mongos
4. service mongos start
加入分片
请注意一定在未给admin数据库创建任何用户之前至少加入一个分片,否则可能会导致以后无法加入。
sh.addShard("rs-1/host-11.mycloud.com")
sh.addShard("rs-2/host-21.mycloud.com")
为admin用户创建第一个用户
该用户的角色必须是userAdminAnyDatabase
1.在mongos服务器本机登录
mongo --port xxxxx #xxxxx表示mongos的监听端口
use admin
show dbs #这时可以列出数据库
db.createUser({user: "SysAdmin",pwd: "123",roles: [{role: "userAdminAnyDatabase", db:"admin"}]});
这时退出后再以mongo --port xxxxx登录执行show dbs就显示未授权了。
重新登录
可以选择在本机登录,也可以从其他机器登录。
本机登录:mongo localhost:27021/admin -u SysAdmin -p 123
其他机器登录:mongo mongos-server:xxxxx/admin -u SysAdmin -p 123
为test数据库创建用户
在mongos服务器上以管理员身份登录admin数据库:mongo localhost:27021/admin -u SysAdmin -p 123
为test数据库创建管理员用户:db.createUser({user: "yc-admin",pwd: "123",roles: [ { role: "userAdmin", db: "test" }]});
切换到test数据库:use test
以test管理员身份登录到数据库:db.auth("yc-admin", "123")
创建test的其他用户:
只读用户:db.createUser({user: "yc-read",pwd: "123",roles: [ { role: "read", db: "test" }]});
读写用户:db.createUser({user: "yc-write",pwd: "123",roles: [ { role: "readWrite", db: "test" }]});
添加其它分片
切换到admin数据库
use admin
为admin数据库增加userAdmin用户和root角色的用户(假设用户名是admin-root),见上一步。
clusterAdmin用户:db.createUser({user: "yc-cstadmin",pwd: "123",roles: [ { role: "clusterAdmin", db: "admin" }]});
切换到yc-cstadmin用户:db.auth("yc-cstadmin", "123")
添加rs-3分片:sh.addShard("rs-3/host-31.mycloud.com")
注意:
数据库不同的角色具有不同的权限:
read:只读
readWrite:读写
root:所有
userAdmin:用户管理
clusterAdmin:集群管理和监控
添加分片只能由admin数据库的root进行,其它用户都没有该权限。
相关文章推荐
- MongoDB用户
- MongoDB的java操作工具
- mac 下用 brew 安装mongodb
- MongoDB安装
- MongoDB 聚合管道(Aggregation Pipeline)
- mongoose使用-mongodb安装配置(MacOS)
- mongoDB主从读写分离实现
- MongoDB基础之九 replication复制集
- 使用C#对MongoDB中的数据进行查询,修改等操作
- PHP简单操作MongoDB的方法(安装及增删改查)
- PHP简单操作MongoDB的方法(安装及增删改查)
- java mongodb驱动下载地址
- MongoDB快速入门学习笔记2 MongoDB的概念及简单操作
- 【转】Mongodb的基本使用总结
- Nosql Mongodb 并发控制之乐观锁
- Nosql Mongodb 基本操作说明
- mongodb 分组查询
- mongodb中log file "/home/work/mongodb/log/mongodb.log" exists; moved to “..”
- C#MongoDB使用实践
- 关于mongodb的索引的作用和用法--mongodb