1. MongoDB創建用戶角色及開啟驗證 先啟動單例的mongodb [root@service ~]# mongod -f mongodb.conf 以配置的方式啟動 配置文件如下 systemLog: #MongoDB發送所有日誌輸出的目標指定為文件 destination: file #mo ...
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']})
不足的地方請多多指教哦