1. 程式人生 > 其它 >1.4 mongoDB認證配置

1.4 mongoDB認證配置

技術標籤:YApimongodb認證配置

mongodb的密碼和mysql不同,mongodb的密碼是基於資料庫的,而不是基於系統的

1、在後臺管理shell中

show dbs

2、進入admin資料庫

use admin

3、建立管理員賬戶

db.createUser({ user: "admin", pwd: "adminpwd", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

關於角色可以參考別人的文章:https://blog.csdn.net/m0_37867491/article/details/87883947

4、建立超級管理員

db.createUser({user: "root",pwd: "rootpwd", roles: [ { role: "root", db: "admin" } ]})

root角色可以用於關閉資料庫

5、建立資料庫,並插入資料

use mongodbtest

插入資料

db.mongotest.insert({"name":"taobao"})

查詢插入的資料

db.mongotest.find().pretty()

如果不插入資料,使用show dbs是看不到新建的資料庫的,在沒有建立集合的下,直接插入資料,

會生成一個和庫名相同的集合

六、建立使用者

db.createUser({user:"test",pwd:"testpwd",roles:[{role:"readWrite",db:"mongotest"}]})

七、開啟認證

在usr/local/mongodb/bin目錄下建立mongodb.conf,注意配置檔案的格式使用的yml語法

config的配置引數參考文件:https://www.jb51.net/article/87914.htm

dbpath 資料檔案存放目錄            
logpath 日誌檔案存放目錄                   
logappend 日誌追加
port 埠
authorization 啟用驗證
fork = true 以守護程式的方式啟用,即在後臺執行
bind_ip #127.0.0.1 只限於本機連線。配置成0.0.0.0 ,別的機器才可以連線
systemLog:
    destination: file 
    logAppend: true
    path: /var/log/mongodb/mongod.log
 net:
    port: 27017
    bindIp: 0.0.0.0
 security:
    authorization: enabled
 storage:
    dbPath: /var/lib/mongo
 processManagement:
    fork: true

關閉服務,此時關閉服務就需要登入了

use admin
db.auth("root","rootpwd")  鑑權
db.shutdownServer()

啟動

./mongod -f mongodb.conf

開發埠

firewall-cmd --zone=public --add-port=27017/tcp --permanent


重啟防火牆 
firewall-cmd --reload