mongodb 启用shareding认证

先停止集群
启用Keyfile Access Control在一个已经存在的replset中


Create a keyfile.
replset 成员服务器所有的keyfile的内容必须完成一致
可以使用任意方法生成keyfile文件的内容,但是内容的长度必须在6-1024位
下面的方法是使用openssl生成1024个随机字符作为keyfile
openssl rand -base64 755 > <path-to-keyfile>
chmod 400 <path-to-keyfile>


Copy the keyfile to each replica set member.
拷贝keyfile到replset所有成员服务器中的相同位置


Shut down all members of the replica set.
关闭replset中所有的成员服务器
首先关闭secondary服务器,直到所有的服务器都关闭,仲裁服务器也需要关闭
最后关闭primary服务器
关闭mongod服务器命令如下
use admin
db.shutdownServer()
确保replset所有的服务器全部关闭


Restart each member of the replica set with access control enforced.
启用keyfile配置文件参数,重新启动mongod服务器,
修改mongod启动配置文件
keyFile=/etc/mongo.key
replSet=replset
以配置文件的方式启动mongod
mongod --config <path-to-config-file>


Connect to a member of the replica set over the localhost interface.
必须在mongod服务器所在的物理服务器上启动mongo shell 并连接到本地的mongod端口
这个本地端口在第一次创建用户后就会失效


Create the user administrator.
因为本地端口在第一次创建用户后就会失效,所以我们需要创建一个有适当权限的用户角色
添加用户使用db.creatUser() 命令
创建的用户至少需要被赋予userAdminAnyDatabase角色在admin数据库中
我们需要连接到replset的primary节点创建用户
admin = db.getSiblingDB("admin")
admin.createUser(
  {
    user: "fred",
    pwd: "changeme1",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)


Authenticate as the User Administrator.
使用新创建的用户登录到admin库
在mongo shell中使用db.auth()来进行认证
db.getSiblingDB("admin").auth("fred", "changeme1" )
另外还可以使用下面的方式登录到replset的primary节点
mongo -u "fred" -p "changeme1" --authenticationDatabase "admin"


Create the cluster administrator (Optional).
创建集群管理员在admin数据库中
db.getSiblingDB("admin").createUser(
  {
    "user" : "ravi",
    "pwd" : "changeme2",
    roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
  }
)


Create additional users (Optional).
创建其它有需要的用户角色
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值