Chinaunix首页 | 论坛 | 博客
  • 博客访问: 348695
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: NOSQL

2016-11-01 15:13:29

复制集中使用访问控制需要配置:
1.启用内部认证机制   -- keyfiles机制
2.客户端与复制集连接启用用户访问控制
启用keyfiles访问控制
1.创建keyfile并修改文件权限为只读
openssl rand -base64 755 > keyfile
chmod 400 keyfile 
2.复制文件到各成员,文件存放路径一致,确保访问用户都能访问这个文件
3.shutdown成员
shutdown所有成员,包括arbiters,为了避免rollback的潜在风险,必须保证primary是最后shutdown的成员
admin用户使用db.shutdownserver()
use admin
db.shutdownServer()
4.使用配置文件重启mongod,使用原来的replsetname
配置文件形如:
security:
  keyFile:
replication:
  replSetName:
5.登录primary(通过rs.status()验证)添加管理用户
db.getSiblingDB()
Used to return another database without modifying the db variable in the shell environment.
创建一个能够创建其他用户权限的用户  -- useradminanydatabase
执行以下操作
admin = db.getSiblingDB("admin")
admin.createUser(
  {
    user: "fred",
    pwd: "changeme1",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
6.认证用户登录
(1)登录后-->db.getSiblingDB("admin").auth("fred", "changeme1" )
(2)mongo -u "fred" -p "changeme1" --authenticationDatabase "admin"
7.创建并授权集群管理用户
db.getSiblingDB("admin").createUser(
  {
    "user" : "ravi",
    "pwd" : "changeme2",
    roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
  }
)

参考文档:
file-access-control-in-existing-replica-set/























阅读(574) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~