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模式啓動