mongoDB的复制集5----复制集安全(认证,用户,权限)
2016-08-31 23:02
453 查看
一、什么是认证
如何开启认证1).auth=true(在配置文件里增加)
2).keyFile(建议添加到配置文件里)
#如果设置了auth=true,但第一次没有创建用户就启动实例怎么办 # 在配置文件里增加如下 echo "setParameter=enableLocalhostAuthBypass=1" >> /usr/local/mongoDB/conf/28001.conf #然后用本地ip连接 mongo localhost:28001auth与keyFile的区别
auth 单点
keyFile 集群之间验证
开户keyFile默认开户auth
1-1.如何配置keyfile
keyFile的注意事项:1.内容 base64编码集[a-z A-Z +/]
2.长度 1000bytes
3.权限至少 chmod 600 keyFile (
配置:
1).在配置文件去除auth=true;
2).增加keyFile=/usr/local/mongoDB/.keyFile,在28001.conf等三个文件都这么配置
changwen@ubuntu:~$ touch .keyFile changwen@ubuntu:~$chmod 600 .keyFile changwen@ubuntu:~$ openssl rand -base64 102 bFWO/1wdII04a6lNCFy9I5mfQ161K9HO/eMLcrQhUVhZrztXBSG2OkJxotXqvAhq jEB6JSA/3Hq6m7X7a+K66pSQcCRXVgZ9+exl2piDdgkOFdB9q9PTXK+uCnvFXlfM cJL+fA74 changwen@ubuntu:~$ openssl rand -base64 102 > .keyFile # 后面就启动和连接服务器
二、用户
2-1.如何创建/删除一个用户
1).创建语法:createUser(2.6之前为addUser)2).db.createUser(
{user:"<name>",
pwd:"<cleartext password>",
roles:[{role:"<role>",db:"<database>"}]})
# 创建第一个用户一定要有创建其他用户的能力 db.createUser( {user:'adminTest', pwd:"'123455', roles:[{role:'root',db:'admin'}]}) # 再次连接时,在哪创建的用户就需要登陆到哪个库的认证 db.auth('adminTest','12345') #然后就可以操作数据库了2).如何删除一个用户
db.dropUser(<user_name>) :删除某个用户,接受字体串参数
db.dropAllUsers() :删除当前库的所有用户,使用小心
3).如何修改用户密码
需要具备changePassword或changeOwnPassword
db.changeUserPassword(<user_name>,<new_password>)
db.updateUser(<user_name>,{update_object})
三、权限
角色:对某一资源的权限的‘集合‘mongoDB有两种角色,一种是自带的角色(built-in roles),还有一种是自定义角色。
3).角色类型:内建类型
读写:read,readWrite,
管理员:dbAdmin,dbOwner,userAdmin、clusterAdmin,clusterManager,clusterMonitor,hostManager
备份: backup、restore
全局: readAnyDatabas, readWriteAnyDatabase, userAdminAnyDatabase, dbAdminAnyDatabase
超级用户:root
自定义角色
db.createRole({
role:<role_name>,
privileges:[{resource:{db:<db_name>,collection:<coll_name>},actions:[<action_name>]}],
roles:[{role:<role_name>,db:<db_name>}]})
# 将用户的权限都打印出来 db.runCommand({userInfo:'admin',showPrivileges:1}) #自定义角色 db.createRole({ role:'testRole', privileges:[{resource:{db:'changwen',collection:''}, actions:['find','insert','remove']}], roles:[{role:'read',db:'test'}]}) #创建用户 db.createUser( {user:'roleTest', pwd:"'123', roles:[{role:'testRole',db:'admin'}]})
三、权限伸缩
1).如何增加权限db.grantRolesToUser(
<user_name>,
[{role:<role_name>,db:<db_name>}])
注意,本方法接受2个参数,而不是两个对象
而且如何权限重复不会覆盖,新的会增加
db.grantRolesToUser('roleTest,[{role:'readWrite',db:'test'}])2).如何收缩权限
db.revokeRolesToUser(
<user_name>,
[{role:<role_name>,db:<db_name>}])
相关文章推荐
- MongoDB增加用户认证:增加用户、删除用户、修改用户密码、读写权限、只读权限
- Mongodb用户和认证 权限总结
- [bigdata-023] pymongo 3.4和mongodb 2.x的安全机制导致的用户认证问题
- Mongodb 3.2.9开启用户权限认证问题的步骤详解
- Mongodb用户和认证 权限总结
- MongoDB的用户、认证和权限
- MongoDB增加用户认证: 增加用户、删除用户、修改用户密码、读写权限、只读权限
- MongoDB增加用户认证: 增加用户、删除用户、修改用户密码、读写权限、只读权限
- MongoDB 用户权限与安全相关
- MongoDB用户认证和权限
- Mongodb用户和认证 权限总结
- MongoDB增加用户认证:增加用户、删除用户、修改用户密码、读写权限、只读权限
- MongoDB 开启安全认证及创建用户
- 【Mongodb】用户和认证 权限总结
- 【Mongodb】用户和认证 权限总结
- 【Mongodb】用户和认证 权限总结
- mongodb之用户/认证/角色/权限管理
- MongoDB复制集安全认证
- Mongodb用户安全认证
- 10、Mongodb的用户认证和数据库的安全