當前位置:
首頁 > 知識 > MongoDB安全、其他命令

MongoDB安全、其他命令

Role-Based Access Control 基於角色的控制

MongoDB安全、其他命令

MongoDB安全、其他命令

客戶端授權

shell腳本創建用戶

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

Tips:

1.伺服器啟動需要加上auth參數連接伺服器才需要驗證

如:./mongod -f mongodb.conf --auth

2.切換到資料庫上,才能給當前資料庫創建用戶;

Java客戶端安全認證

MongoCredential類包括每個受支持的身份驗證機制的靜態工廠方法。

public static MongoCredential createCredential(final String userName, final String database, final char[] password)

spring客戶端安全認證

MongoCredential類包括每個受支持的身份驗證機制的靜態工廠方法。

<mongo:mongo-client host="192.168.1.142" port="27022" credentials="lison:lison@lison"> </mongo:mongo-client>

其他常用命令

show dbs :顯示資料庫列表

show collections :顯示集合列表

db : 顯示當前資料庫

db.stats() :顯示資料庫信息

db.serverStatus() : 查看伺服器狀態

db.dropDatabase():刪除資料庫

db.help(),db.collection.help():內置幫助,顯示各種方法的說明;

db.users.find().size():獲取查詢集合的數量;

db.users.drop():刪除集合;

數據管理命令

數據備份 mongodump

./mongodump -h localhost:27022 -d lison -o /usr/local/apache/mongoDB/

-h :指定ip和埠; -d :備份的資料庫名稱 ; -o:指定備份的路徑 其本質為:執行查詢,然後寫入文件;

數據恢復 mongorestore

./mongorestore -h localhost:27022 -d lison /usr/local/apache/mongoDB/lison/ --drop

--drop 已存在lison庫則刪除原資料庫,去掉--drop則是合併

數據導出 mongoexport(針對集合)

./mongoexport -h localhost:27022 -d lison -c users -f id,username,age,salary --type=csv -o /usr/local/apache/mongoDB/mongodb-linux-x86_64-rhel70-3.4.10/users.csv

-c :指定導出的集合; -f :要導出的欄位; --type:導出的文件格式類型[csv,json]

數據導入 mongoimport(針對集合)

./mongoexport -h localhost:27022 -d lison -c users /usr/local/apache/mongoDB/mongodb-linux-x86_64-rhel70-3.4.10/users.csv ---upsert

--upsert 表示更新現有數據,如果不適用—upsert,則導入時已經存在的文檔會報id重複,數據不再插入,也可以使用—drop刪除原有數據

關閉mongodb步驟

1.特別在生產環境,不要用kill -9關掉mongodb的進程,很可能造成mongodb的數據丟失;

優雅的關機:

(1)第一種方式

use admin

db.shutdownServer()

(2)第二種方式

mongod --shutdown -f mongodb.conf

安全許可權設置步驟

1.通過start-mongodb-auth.sh啟動mongodb

2.資料庫增加安全模式後,初始化一個「userAdminAnyDatabase」非常重要

通過客戶端連接,使用admin資料庫, 執行如下腳本:

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

3.使用剛創建成功的用戶登錄:db.auth("boss","boss");

4.切換到lison資料庫(use lison),創建讀寫許可權用戶:db.createUser({"user":"lison","pwd":"lison","roles":[{"role":"readWrite","db":"lison"}]})

5.使用讀寫許可權用戶lison登錄,db.auth("lison","lison"),登錄後測試;

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

Linux內存布局
消息中間件—簡談Kafka中的NIO網路通信模型

TAG:程序員小新人學習 |