一、為什麼需要設置密碼
MongoDB 是一種數據存儲方式,沒有像傳統資料庫一樣的表結構,能夠用 JavaScript 語言來操作資料庫,這樣就非常方便。但是 MongoDB 原生是沒有身份驗證機制的,這就意味著你如果不設置密碼,別人很容易就能夠登錄你的資料庫,並且隨意查看和編輯你的數據,這顯然不是我們想看到的結果。因此,在 MongoDB 中設置密碼就變得尤為重要。
二、MongoDB 設置密碼的步驟
以下在 CentOS 7 上為例,具體操作可能會略有不同:
1. 啟動 MongoDB 並生成管理員用戶
mongod --auth # 啟動 MongoDB 時啟用身份驗證
mongo admin # 進入管理員管理頁面
db.createUser({user:"admin", pwd:"123456", roles:[{role:"root", db:"admin"}]}) # 創建管理員用戶
exit # 退出管理員管理頁面
這裡 admin 是管理員用戶名,123456 是管理員密碼。roles:[{role:”root”, db:”admin”}] 意味著為該用戶授權 root 許可權並在 admin 資料庫中進行授權。
2. 在 MongoDB 中為資料庫創建用戶和密碼
mongo localhost/admin -u admin -p 123456 # 以管理員身份登錄
use test # 進入到需要設置密碼的資料庫
db.createUser({user:"test", pwd:"123456", roles:[{role:"dbOwner", db:"test"}]}) # 為 test 資料庫創建用戶
exit # 退出管理員身份登錄
這裡 test 是需要設置密碼的資料庫名稱,test 是該資料庫所對應的用戶名,123456 是該用戶對應的密碼。roles:[{role:”dbOwner”, db:”test”}] 表示該用戶有 test 資料庫的讀寫許可權。
三、使用 MongoDB 身份驗證
現在,如果沒有身份驗證,我們還可以像以前一樣進入資料庫:
mongo localhost/test # 進入 test 資料庫
但是,如果我們想以剛剛設置的用戶名和密碼登錄資料庫,需要像下面這樣進行:
mongo localhost/test -u test -p 123456 # 以 test 用戶名和密碼登錄 test 資料庫
至此,我們已經成功為 MongoDB 設置了密碼,實現了資料庫的身份驗證。
四、修改 MongoDB 用戶名和密碼
如果需要修改 MongoDB 用戶名和密碼,可以執行以下步驟:
1. 以管理員身份登錄
mongo localhost/admin -u admin -p 123456 # 以管理員身份登錄
2. 進入剛才設置密碼的資料庫
use test # 進入到需要設置密碼的資料庫
db.changeUserPassword("test", "12345") # 修改用戶密碼
db.renameUser("test", "test_123") # 修改用戶名
這裡使用了 changeUserPassword 和 renameUser 兩個命令,前者用於修改用戶密碼,後者用於修改用戶名。
五、刪除 MongoDB 用戶
如果需要刪除 MongoDB 用戶,可以執行以下命令:
1. 以管理員身份登錄
2. 進入剛才設置密碼的資料庫
use test # 進入到需要設置密碼的資料庫
db.dropUser("test_123") # 刪除 test_123 用戶
這裡使用的是 dropUser 命令,用於刪除指定用戶。
六、總結
本文介紹了在 MongoDB 中為資料庫設置密碼的方法,包括生成管理員用戶、為資料庫創建用戶和密碼、使用 MongoDB 身份驗證、修改 MongoDB 用戶名和密碼以及刪除 MongoDB 用戶的步驟。希望能夠對大家有所幫助。
原創文章,作者:RPRYV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/334426.html