mongodb备份角色-mongodump
我们有一个开发团队,它将定期从开发人员中取出mongodump,然后将其恢复到本地主机以供工作。我们最近在mongodb中实现了身份验证,我希望我们的开发团队能够只在一个DB上执行mongodump,这样他们就可以将它恢复到本地主机上 我有一个从Admin继承备份角色的角色,但这是由我们的DBA备份整个系统mongodb备份角色-mongodump,mongodb,authentication,database-backups,Mongodb,Authentication,Database Backups,我们有一个开发团队,它将定期从开发人员中取出mongodump,然后将其恢复到本地主机以供工作。我们最近在mongodb中实现了身份验证,我希望我们的开发团队能够只在一个DB上执行mongodump,这样他们就可以将它恢复到本地主机上 我有一个从Admin继承备份角色的角色,但这是由我们的DBA备份整个系统 我的问题是,我如何允许特定用户使用此备份角色let call他们webdev for a specific DB let call it products 您可以在产品数据库中创建具有读取权
我的问题是,我如何允许特定用户使用此备份角色let call他们webdev for a specific DB let call it products 您可以在产品数据库中创建具有读取权限的用户:
> use products
> db.createUser( {
user: "webdev",
pwd: "password",
roles: [ "read" ]
} )
请记住使用-excludeCollectionsWithPrefix=system调用mongodump
为了避免权限错误,假设您使用的是Mongo3我使用的是MongoDB3.4版本,首先您需要一个管理员数据库的根访问权限,然后连接MongoShell $mongo-u用户名-p xxxxxx-authenticationDatabase admin 连接mongoshell后,更改数据库
use products
更改数据库后,创建新用户
db.createUser(
{
user: "webdev",
pwd: "xxxxx",
roles: [
{ role: "read", db: "products" },
{ role: "backup", db: "products"}
]
}
)
如上所述,webdev用户可以读取所有集合并进行备份访问
db.auth('webdev', 'xxxxx')
成功进行身份验证后,您可以从DEV服务器读取和获取备份
下面我提到了新webdev用户的mongodump查询
参考:
注:
不要在生产中频繁服用mongodump。这将影响到整个世界
性能问题。
不要将备份和恢复权限授予任何其他团队,如开发人员,
测试员……等
管理员或DBA仅在每次备份/恢复时执行此操作
多谢各位。如有任何问题,请回复
这就是确切的答案!非常感谢你anresk@UpTheCreek,在进行备份之前,如果您需要检查数据库或集合或读取某些特定数据…等等
db.auth('webdev', 'xxxxx')
mongodump --host hostname --port 27017 --username webdev --password xxxxx --authenticationDatabase products --db products --collection collection_name --out mongodump_outpath