mongodb 备份角色 - mongodump
mongodb backup role - mongodump
我们有一个开发团队会定期从 DEV 中取出 mongodump,然后将其恢复到本地主机以供工作。我们最近在 mongodb 中实施了身份验证,我希望能够让我们的开发团队仅在一个数据库上执行 mongodump,以便他们可以将其恢复到本地主机。
我有一个角色继承了Admin的备份角色,但那是给我们DBA备份整个系统的。
我的问题是,如何允许特定用户(我们称之为 "webdev")为特定数据库(我们称之为 "products")使用此备份角色?
您可以在 products
数据库中创建具有读取权限的用户:
> use products
> db.createUser( {
user: "webdev",
pwd: "password",
roles: [ "read" ]
} )
记得用--excludeCollectionsWithPrefix=system
调用mongodump
mongodump --excludeCollectionsWithPrefix=system
为了避免权限错误(假设你使用的是Mongo3)
我正在使用 MongoDB3.4 版本,首先你需要一个管理员数据库的根访问权限并连接 mongo shell,
$ mongo -u username -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 服务器 读取和备份。
下面我提到了 mongo使用新 webdev 用户转储查询。
mongodump --host hostname --port 27017 --username webdev --password xxxxx --authenticationDatabase products --db products --collection collection_name --out mongodump_outpath
参考:https://docs.mongodb.com/manual/reference/built-in-roles/#backup
注:
- 不要在生产中频繁使用 mongo转储。它将影响
性能问题。
- 不要向开发人员等任何其他团队提供备份和恢复权限,
测试仪等
管理员或 DBA 每次只做 Backup/Restore。
谢谢。如有任何问题,请回复。
我们有一个开发团队会定期从 DEV 中取出 mongodump,然后将其恢复到本地主机以供工作。我们最近在 mongodb 中实施了身份验证,我希望能够让我们的开发团队仅在一个数据库上执行 mongodump,以便他们可以将其恢复到本地主机。
我有一个角色继承了Admin的备份角色,但那是给我们DBA备份整个系统的。
我的问题是,如何允许特定用户(我们称之为 "webdev")为特定数据库(我们称之为 "products")使用此备份角色?
您可以在 products
数据库中创建具有读取权限的用户:
> use products
> db.createUser( {
user: "webdev",
pwd: "password",
roles: [ "read" ]
} )
记得用--excludeCollectionsWithPrefix=system
mongodump --excludeCollectionsWithPrefix=system
为了避免权限错误(假设你使用的是Mongo3)
我正在使用 MongoDB3.4 版本,首先你需要一个管理员数据库的根访问权限并连接 mongo shell,
$ mongo -u username -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 服务器 读取和备份。
下面我提到了 mongo使用新 webdev 用户转储查询。
mongodump --host hostname --port 27017 --username webdev --password xxxxx --authenticationDatabase products --db products --collection collection_name --out mongodump_outpath
参考:https://docs.mongodb.com/manual/reference/built-in-roles/#backup
注:
- 不要在生产中频繁使用 mongo转储。它将影响 性能问题。
- 不要向开发人员等任何其他团队提供备份和恢复权限, 测试仪等
管理员或 DBA 每次只做 Backup/Restore。
谢谢。如有任何问题,请回复。