先停止集群
启用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).
创建其它有需要的用户角色
启用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).
创建其它有需要的用户角色