我們每周從 Prod -> Dev 復制。對于開發人員,我們需要一個存在于開發資料庫端的用戶來讀/寫開發資料庫,??但該用戶不存在于生產端,因此我們永遠不必在我們想要提供時授予開發人員對生產資料庫的訪問權限開發人員訪問開發資料庫。作為作業流程的一部分,我們確實每次都創建一個全新的用戶,但似乎可能有更好的解決方案。
為了簡化,我們如何在 mongoDB 中創建一個用戶,以便它在我們從 Prod 資料庫進行任何恢復或復制時仍然存在?
我一直在研究$externalMongoDB,但我不認為我們有類似的設定,如果我們有,那將如何影響 RBAC?據我所知,外部資料庫根本不是真正的資料庫,只存盤憑據。如果像我之前提到的那樣,我們從 Prod 復制下來,那么該用戶的角色是否也會被洗掉?我覺得我在這里錯了,所以請隨時糾正我。
uj5u.com熱心網友回復:
所有授權和身份驗證組態檔都內部存盤在“管理”資料庫中,甚至虛擬 $external 身份驗證/授權組態檔的映射也存盤在管理資料庫中。
選項 1)您 mongodump/mongorestore 只需要從 PROD 到 DEV 環境的必要資料庫,不包括管理資料庫。(更清潔的選擇)
選項 2)如果您從 PROD 獲取 fs 快照,您需要為 DEV 管理資料庫制作 mongodump,并在將從 PROD 獲取的 fs 快照恢復到 DEV 環境后 mongorestore 它。(當然,如果您忘記 mongorestore DEV 管理資料庫,您將在 DEV 中擁有 PROD 用戶)。
選項 3)您使用相同的組、映射 -> LDAP、KERBEROS 等配置 $external 授權/身份驗證,因此您保留映射并將 PROD 復制到 DEV fs 快照,但您在 DEV 和 PROD 中的用戶由外部源授權/認證(例如 LDAP 服務器)因此憑據不在 DEV 環境中。($external authentication/authorisation requiere mongoDB enterprise version)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/535612.html
標籤:数据库rbac备份
