MongoDB安全、其他命令
Role-Based Access Control 基於角色的控制
客戶端授權
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:程序員小新人學習 |