MongoDB安全、其餘命令

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

 

客戶端受權spring

shell腳本建立用戶mongodb

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

Tips: 數據庫

1.服務器啓動須要加上auth參數鏈接服務器才須要驗證    apache

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

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"),登陸後測試;
ps:也能夠以非auth模式啓動,而後建立用戶後,用auth模式啓動

相關文章
相關標籤/搜索