1. MongoDB創建用戶角色及開啟驗證
先啟動單例的mongodb
[root@service ~]# mongod -f mongodb.conf
以配置的方式啟動

組態檔如下
systemLog:
#MongoDB發送所有日志輸出的目標指定為檔案
destination: file
#mongod或mongos應向其發送所有診斷日志記錄資訊的日志檔案的路徑
path: "/home/log/mongod.log"
#當mongos或mongod實體重新啟動時,mongos或mongod會將新條目附加到現有日志檔案的末尾,
logAppend: true
storage:
#mongod實體存盤其資料的目錄,storage.dbPath設定僅適用于mongod,
dbPath: "/home/data"
journal:
#啟用或禁用持久性日志以確保資料檔案保持有效和可恢復,
enabled: true
processManagement:
#啟用在后臺運行mongos或mongod行程的守護行程模式,
fork: true
#指定用于保存mongos或mongod行程的行程ID的檔案位置,其中mongos或mongod將寫入其PID
pidFilePath: "/home/log/mongod.pid"
net:
#服務實體系結所有IP,有副作用,副本集初始化的時候,節點名字會自動設定為本地域名,而不是ip
#bindIpAll: true
#服務實體系結的IP 注意ip必須存在否啟動不了mongoDB
bindIp: localhost,192.168.85.154
#bindIp
#系結的埠
port: 27017
MongoDB的用戶在admin資料庫中的user集合中,初始化時,沒有這個user集合
切換到admin庫
> use admin
創建系統超級用戶 myroot,設定密碼123456,設定角色root 【負責管理用戶】
添加用戶執行在開啟權限之前(添加權認證授配置),不然進去客戶端無法驗證,添加不了用戶
下面是指定資料庫
> db.createUser({user:"myroot",pwd:"123456",roles:[ { "role" : "root", "db" : "admin" } ]})
或 (這個是沒有設定資料庫權限的)
> db.createUser({user:"myroot",pwd:"123456",roles:["root"]})
創建專門用來管理admin庫的賬號myadmin,只用來作為用戶權限的管理
> db.createUser({user:"czx",pwd:"123456",roles: [{role:"userAdminAnyDatabase",db:"admin"}]})
修改配置開啟驗證(在組態檔添加授權認證 配置)
授權認證(注意格式,類似于springboot的yml配置的格式)
security:
#開啟授權認證
authorization: enabled
驗證命令:(用來設定驗證,也可以用來執行驗證)
需要切換到admin資料庫進行驗證
這里的用戶名和密碼是進行權限驗證讀寫資料庫資料的
>db.auth("用戶名","密碼")

客戶端重新連接時,需要驗證用戶名和密碼,否則查看不到資料庫和集合
【注意:驗證失敗時,需要切換資料庫,比如切換到admin】
查看用戶

進入客戶端需要切換到admin資料庫進行權限驗證才能讀寫資料

洗掉用戶( myroot:用戶名 )
> db.dropUser("myroot")
2. Spring Data連接
使用用戶名和密碼連接到 MongoDB 服務器,你必須使用'username:password@hostname/dbname' 格式,'username'為用戶名,'password' 為密碼, 目標:使用用戶czx使用密碼 123456 連接到MongoDB 服務上,
組態檔如下
application.yml:
spring:
#資料源配置
data:
mongodb:
# 主機地址
host: 180.76.159.126
# 資料庫
database: articledb
# 默認埠是27017
port: 27017
#帳號
username: ckf_user
#密碼
password: 123456
yml配置,單例配置 本地把ip改成hocalhost
spring:
data:
mongodb:
uri: mongodb://ckf_user:[email protected]:27017/attend_db
先切換admin資料庫登錄獲取權限 再切換到需要權限的資料庫(專案的資料庫)執行添加用戶,設定用戶名和密碼(read:讀)下面的用戶名對應著yml配置的用戶名
添加用戶如下(給資料庫獲取)
>db.createUser({user:"ckf_user",pwd:"123456",roles:[{role:"readWrite",db:"test"},{role:"readWrite",db:"attend_db"},'read']})

不足的地方請多多指教哦
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/6070.html
標籤:NoSQL
下一篇:Linux環境下安裝Redis
