为MongoDB加集群验证的关键点

1.确保集群搭建完成,状态正常

2.增加安全认证机制KeyFile

1)集群之间的安全认证
集群之间的复制增加keyFile认证

mkdir   /home/mongodb/data/keyfile
openssl rand -base64 745 >  /home/mongodb/data/keyfile/mongodb-keyfile

chmod 600  /home/mongodb/data/keyfile/mongodb-keyfile

将该key放到集群中机器的每一台上,记住必须保持一致,权限设置成600;

2)修改配置文件

vim  mongodb/mongod.conf
security:
  authorization: enabled
  keyFile: "/home/mongodb/data/keyfile/mongodb-keyfile"
  clusterAuthMode: "keyFile"

##注意缩进

3)主库配置用户

也可后面配置,开启keyfile认证就默认开启了auth认证了,为了保证后面可以登录,我提前创建了用户:

先创建管理员账户

db.createUser( 

{ 
    user:"admin",  
    pwd:"123456", 
    roles:[{role:"userAdminAnyDatabase",db:"admin"}] 
} 
); 

db.createUser( {
 user: "root",
 pwd: "123456",
 roles: [ { role: "root", db: "admin" } ]
 });

#认证用户
db.auth("admin","123456")
db.auth("root","123456")

4)重启MongoDB并进入
重新启动mongodb,记住重新启动时候,keyfile的指定如果没有在配置文件中配置,就必须启动时候使用参数keyfile指定,关闭顺序注意下,mongodb集群有自动切换主库功能,如果先关主库,主库就切换到其它上面去了,这里预防主库变更,从库关闭后再关闭主库。

登录MongoDB进行测试:
 ./mongodb/bin/mongo  192.168.254.110:27017   -u root -p 123456 

查看下集群的状态是否正常:
rs.status()

3.创建用户和用户数据库

1)启动认证

开启了安全认证就可以开始对每个数据库进行安全认证了,首先给用户创建一个数据库:

test_set:PRIMARY> use wisdom_doc
switched to db wisdom_doc
##mongodb创建数据库直接use即可,此时show dbs是看不到该库的,需要插入一条数据才会现实出来,这里不演示;

2)创建用户数据库的用户:

db.createUser(
  {
    user: "rongda",
    pwd: "a1234456",
    roles: [ { role: "readWrite", db: "wisdom_doc" } ]
  }
);

##创建完成会显示成功,可以用show  users;查看所有用户验证用户是否存在;


##
关于用户可以赋予的权限,请看

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

 

3) 验证用户登录

./mongodb/bin/mongo  192.168.254.110:27017/wisdom_doc   -u rongda -p a1234456

进入到MongoDB数据库后,可以查看该库下的所有集合

show collections;

 

posted @ 2021-02-08 16:08  ld_001  阅读(245)  评论(0编辑  收藏  举报