標籤:https 授權 需要 shu 一個使用者 location restore pat png
一、下載
Linux:CentOS 7.3 64位
MongoDB:3.6.4
安裝目錄:/usr/local
cd /usr/localwget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.6.4.tgz
二、解壓縮
解壓縮安裝包並重新命名(方便管理)
tar -zxvf mongodb-linux-x86_64-rhel62-3.6.4.tgzmv mongodb-linux-x86_64-rhel62-3.6.4 mongodb
三、配置MongoDB
需要配置三項內容,一個是資料檔案夾(db,檔案名稱可自訂),一個是記錄檔夾(logs,檔案名稱可自訂),一個是設定檔(mongo.conf)
1、資料檔案夾
mkdir db
2、記錄檔夾
mkdir logs
3、建立設定檔
# where to write logging data.systemLog: destination: file logAppend: true path: /usr/local/mongodb/logs/mongod.log #記錄檔存放目錄# Where and how to store data.storage: dbPath: /usr/local/mongodb/db #資料檔案存放目錄 journal: enabled: true# how the process runsprocessManagement: fork: true #以精靈的方式啟用,即在後台運行 pidFilePath: /usr/local/mongodb/mongod.pid # location of pidfile# network interfacesnet: port: 27017 #連接埠 bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.連接埠對外開放
4、
5、啟動
MongoDB 的 bin 目錄下執行:
./mongod --config /usr/local/mongodb/mongod.conf
四、添加使用者
MongoDB 安裝完成後預設是不用驗證密碼的,這在生產環境上是絕對不允許存在的,我們需要建立使用者,並增加使用者驗證!
如果將一個使用者添加到admin資料庫,這個使用者將自動獲得所有資料庫的許可權,即管理員賬戶。如果將一個使用者添加到普通的資料庫,這個使用者只能獲得該資料庫的相關許可權,即普通使用者。
切換至MongoDB的 bin目錄下:
1、添加管理員賬戶
./mongo>use admin>db.createUser({user:"root",pwd:"password",roles:["root"]})
2、啟用MongoDB 授權
在 mongod.conf 後加上:
security: authorization: enabled //啟用授權
3、重啟生效
關閉MongoDB伺服器:
./mongod -shutdown -dbpath=/usr/local/mongodb/db
授權後的啟動MongoDB伺服器:
./mongod --dbpath=/usr/local/mongodb/db --logpath=/usr/local/mongodb/logs/mongod.log --logappend --port 27017 --auth --fork
4、認證使用者
./mongo>use admin>show dbs //會提示使用者未驗證>db.auth("root","password")>show dbsadmin 0.001GBconfig 0.000GBlocal 0.000GB
5、添加普通使用者
> use lxcx //建立資料庫> db.createUser({user:"summer",pwd:"summer",roles:[{"role" : "readWrite","db" : "lxcx"}]}); //建立這個資料庫的讀寫權限使用者
user:使用者名稱
pwd:密碼
roles:指定使用者的角色,可以用一個空數組給新使用者設定空角色;在roles欄位,可以指定內建角色和使用者定義的角色。role裡的角色可以選:
Built-In Roles(內建角色): 1. 資料庫使用者角色:read、readWrite; 2. 資料庫管理角色:dbAdmin、dbOwner、userAdmin; 3. 叢集管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager; 4. 備份恢複角色:backup、restore; 5. 所有資料庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6. 超級使用者角色:root // 這裡還有幾個角色間接或直接提供了系統超級使用者的訪問(dbOwner 、userAdmin、userAdminAnyDatabase) 7. 內部角色:__system
Read:允許使用者讀取指定資料庫readWrite:允許使用者讀寫指定資料庫dbAdmin:允許使用者在指定資料庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profileuserAdmin:允許使用者向system.users集合寫入,可以找指定資料庫裡建立、刪除和系統管理使用者clusterAdmin:只在admin資料庫中可用,賦予使用者所有分區和複製集相關函數的系統管理權限。readAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀許可權readWriteAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的讀寫權限userAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的userAdmin許可權dbAdminAnyDatabase:只在admin資料庫中可用,賦予使用者所有資料庫的dbAdmin許可權。root:只在admin資料庫中可用。超級帳號,超級許可權
Linux 安裝 MongoDB