MongoDB安裝和配置


官網下載5.0.3, 並安裝. Windows下安裝后並選擇使用windows 服務來啟動mongo服務.

 

======================================

免密登錄

======================================

初次登錄, 打開 mongo.exe 客戶端, 不需要輸入用戶密碼就能登錄, 安全性不高, 后面介紹如何加上安全認證.

 

 

在mongo.exe中執行show dbs命令, 能顯示有三個數據庫, 說明登錄成功.  

 

 

查看 mongo 的配置文件mongod.cfg

注意默認綁定IP 是127.0.0.1, 如果要在局域網內訪問mongo服務, 需要修改IP為 0.0.0.1, 即綁定所有的網卡. 

 

 

======================================

創建賬號

====================================== 

創建一個mongoDB 的超級管理員root賬號

先切到admin db下, 賬號名設定為 root, 角色也選 root. 

use admin
db.createUser({user:'root', pwd: '123456', roles:['root']})

使用 db.auth() 方法可以驗證用戶密碼是否OK.

 

 

 

在test db 下的test_user/test_guest/test_owner 賬號

use test
db.createUser({user:'test_user', pwd: '123456', roles:[{db:'test', role:'readWrite'}]})
db.createUser({user:'test_guest', pwd: '123456', roles:[{db:'test', role:'read'}]})
db.createUser({user:'test_owner', pwd: '123456', roles:[{db:'test', role:'dbOwner'}]})

 

 

在 admin 數據庫的 system.users 集合中, 可以查看所有用戶信息. 

 

======================================

啟用驗證方式登錄

======================================

mongo 的配置文件mongod.cfg 增加 auth 選項

mongod.cfg新版使用yml格式, 配置如下:

security:
    authorization: enabled

mongod.cfg老版文件, 配置如下:

auth=true

 

再次啟動mongo.exe客戶端, 運行 show dbs, 沒有列出任何數據庫, 可見並未進行真正登錄成功

 

 

mongodb.exe 客戶端使用賬號密碼方式登錄,  以root賬號登錄:

.\mongo.exe mongodb://localhost:27017/admin -u root -p 123456

端口后的/db, 這里的db和應用程序連接url的authSource含義相同, 用來指定在哪個庫驗證用戶. 雖然 admin 庫下存儲所有賬號的用戶名和密碼, 但 authSource 參數不一定就是 admin 庫, 准確地說: 在哪個庫下創建用戶, authSource 就是那個庫.

root 賬號雖然能管理任何數據庫, 但不能直接登錄test 數據庫. 

 

 

test_owner 賬號登錄:

 

 

======================================

 應用程序url寫法:

====================================== 

mongodb://root:123456@127.0.0.1:27017/admin?authSource=admin&w=majority&wTimeoutMS=5000&journal=true&readPreference=primary&retryWrites=true

mongodb://test_owner:123456@127.0.0.1:27017/test?authSource=test&w=majority&wTimeoutMS=5000&journal=true&readPreference=primary&retryWrites=true
  • authSource 參數, 用來指定在哪個庫驗證用戶. 雖然 admin 庫下存儲所有賬號的用戶名和密碼, 但 authSource 參數不一定就是 admin 庫, 准確地說: 在哪個庫下創建用戶, authSource 就是那個庫.
  • retryWrites 采用可重試寫入方式, 設定 retryWrites 為true 后, writeConcern 參數配不能設置為 0
  • w 參數即 writeConcern, 設置為 majority, 保證每次寫操作都成功寫入到復制集中的多數服務器中, 數據安全性較好.
  • j 參數即 journal HAL日志, j=true, 落盤后返回寫操作, j=false, 刷到內存后即返回寫操作.
  • wTimeoutMS 設定 writeConcern 的超時時間, 單位毫秒, 如果沒有設定, 則寫操作可能會無限阻塞等待.
  • readPreference 參數, 設定讀操作選用節點的策略, 默認為只從主節點讀取, 可選項有:
    •    primary (只主)只從 primary 節點讀數據,這個是默認設置
    •    primaryPreferred (先主后從)優先從 primary 讀取,primary 不可服務,從 secondary 讀
    •    secondary (只從)只從 scondary 節點讀數據
    •    secondaryPreferred (先從后主)優先從 secondary 讀取,沒有 secondary 成員時,從 primary 讀取
    •    nearest (就近)根據網絡距離就近讀取,根據客戶端與服務端的PingTime實現

 

======================================

MongoDB for VS Code插件的使用

======================================

MongoDB 官方的VS code插件, 可以編寫playground 文件, 語法是 js, 可以編寫一些CRUD的腳本, 

如果是使用Run selected line from playground 命令, 選擇部分要包含 use("test") 代碼來切換到目標DB, 否則都是在默認db中執行.

另外, 輸出窗口也切換到 Playground output, 這樣我們能看到一些自己的print()結果.   

 

 

 

 

======================================

mongodb role類型

======================================

數據庫用戶角色(Database User Roles)

read:授予User只讀數據的權限

readWrite:授予User讀寫數據的權限

 

數據庫管理角色(Database Administration Roles)

dbAdmin:在當前DB中執行管理操作

dbOwner:在當前DB中執行任意操作

userAdmin:在當前DB中管理User

 

備份和還原角色(Backup and Restoration Roles):

backup

restore

 

跨庫角色(All-Database Roles):

readAnyDatabase:授予在所有數據庫上讀取數據的權限

readWriteAnyDatabase:授予在所有數據庫上讀寫數據的權限

userAdminAnyDatabase:授予在所有數據庫上管理User的權限

dbAdminAnyDatabase:授予管理所有數據庫的權限

 

集群管理角色(Cluster Administration Roles):

clusterAdmin:授予管理集群的最高權限

clusterManager:授予管理和監控集群的權限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.

clusterMonitor:授予監控集群的權限,對監控工具具有readonly的權限

hostManager:管理Server

 

超級角色(super master Roles)

root :超級賬戶和權限,只在admin中可用

 

======================================

參考

======================================

MongoDB - 標簽 - EdisonZhou - 博客園 (cnblogs.com)

https://docs.anaconda.com/anaconda-repository/admin-guide/install/config/config-mongodb-authentication/

https://blog.csdn.net/qq_33692349/article/details/90524189


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM