第四部分MongoDB資料庫和架構管理

2021-09-06 07:47:13 字數 1954 閱讀 1272

第四部分 管理篇

資料匯出 資料匯入

資料備份 資料恢復

使用者安全與認證

資料匯出 資料匯入

作為dba(管理員),經常會碰到匯入匯出資料的需求

資料匯入 mongoexport

資料匯出 mongoimport

mongoexport -d test -c collection -o 匯出的檔名

引數說明:

-d 資料庫名稱

-c 集合名稱

-o 匯出的檔名稱

mongoimport -d test -c collection 檔名

備份test資料庫

mongodump -d test

此時會在當前目錄下預設建立乙個dump目錄,用於存放備份出來的檔案也可以指定備分儲存放的目錄

後面加上-o my_mongodb_dump

mongorestore -d test -o mydump/test/

如果驗證可先刪除my_mongodb庫,或指明-drop叄數,就可以在恢復的時候先後再向插入資料

單個集合的備份是可以成功

但單個集合的恢復不成功

mongodump -d test -c c5 -o mydump/c5

mongorestore -d test -c c5 mydump/c5

成功了這樣寫才對

mongorestore -d test mydump/c5/test ok 不用加-c 引數,因為並沒有c5已經被刪除了

安全與認證 == 使用者授權

每個mongodb例項中的資料庫都有許多使用者,如果啟用了安全性認證後,只有資料認證的使用者才可以進行讀寫操作

mongodb預設的啟動是不驗證使用者名稱和密碼的,啟動mongodb後,可以直接用mongo連線上來,對所有的庫具有root許可權,所以啟動的時候指定叄數,可以阻止客戶端的訪問和連線,

只需要在啟指定--auth引數即可

mongod --auth

新增資料管理員

use admin;

db.adduser("root":"123");

個人理解:

管理員分為系統管理員和資料庫管理員

系統管理員必須新增到admin陣列庫中,

use admin;

db.adduser("root","123456");

然後用mongo -uroot -p123456 localhost:27017/admin

然後為其它資料庫設定管理員

use test

db.adduser("user1","123456");

現在就能用user1來管理test資料庫了

可以通過db.system.users.find();來檢視資料庫中的所用管理員資訊

mongo -uuser1 -p123456 localhost:27017/test

為什麼還可以登陸呢?在最初始的時候mongodb都預設有乙個admin資料庫(預設是空的)admin.system.users中將會儲存具有管理員許可權的使用者

注意: 當admin.system.users中沒有新增任何使用者時,即使mongodb啟動時新增--auth引數,如果有除admin資料庫中新增了使用者,此時不進行任何認證依然可以使用任操作,直到你在admin.system.users中新增了乙個使用者

建立乙個系統root使用者

在admin庫中新添乙個使用者root

use admin

db.adduser('root','123');

db.auth("root",'123');

建立指定許可權使用者

mongodb也支援為某個特定的資料庫來設定使用者

如我們為test庫設乙個唯讀的使用者user_reader

db.adduser("user1","pass1",true);

只要在db.adduser函式的第三個引數國中true即可為唯讀,只有在test庫,有唯讀的許可權

第四部分 方法3

對employee.calculatepay方法的呼叫是問題的原因。我們需要的是晚繫結。晚繫結 latebinging 意味著編譯器到執行時才選擇要執行的方法。為了迫使編譯器呼叫向上型別轉換得到的物件的方法的正確版本。我們使用了兩個關鍵字 virtual 和override.必須在基類方法中使用vi...

第四部分 方法5

linux繼承了unix作業系統結構清晰的特點。在linux下的檔案結構非常有條理。但是,上述的優點只有在對linux相當熟悉時,才能體會到。vmlinuz 我們已經知道,每乙個linux都有乙個核心 vmlinuz 我們在這個核心上新增上可以完成各種特定功能的模組,每個模組就體現在 linux中各...

JavaScript筆記(第四部分)

命 名 空 間 管理變數,防止汙染全域性,適用於模組開發 之 前 的 解 決 辦 方 已經不用 命名空間 var org xuming department2 lisi 了解即可 用 法 org.department1.jicheng.name 簡化 var jc org.department1.j...