一、用戶創建
1、創建超級管理員
a.首先開啓Mongo服務,然後切換admin數據庫
use admin;
b.創建
db.createUser({user:"root",pwd:"ceshi123",roles:[{role:"root",db:"admin"}]});
c.修改mongodb.conf配置文件
添加代碼:
auth=true
如果有以下代碼,可修改
noauth=true // 修改爲auth=true
保存mongodb.conf文件
d.創建超級管理員之後,重新啓動mongodb服務
use admin;
db.shutdownServer(); //關閉服務
exit;
下一步要進入到mongodb安裝目錄下的bin
如果是windows系統,可以直接去mongodb/bin目錄下打開命令shell,具體操作方法:按住shift+鼠標左鍵可快速打開shell,輸入啓動命令:
./mongod -f /usr/local/mongodb/conf/mongodb.conf
./mongod
如果是linux服務器,可以直接到mongodb/bin目錄下
cd /usr/local/mongodb/bin // 小編mongodb的安裝目錄是/usr/local
./mongod -f /usr/local/mongodb/conf/mongodb.conf
./mongod
經過以上操作,現在創建了操作mongodb的超級管理員;
下邊我們針對我們要使用的數據庫進行創建管理員
2、創建指定數據庫管理員
a.進入到指定數據庫,這裏採用testDB
mongo //啓動mongodb
use admin;
db.auth("root","ceshi123");
如果shell出現1則爲進入mongodb成功,爲0進入失敗。
進入成功後,執行以下:
use testDB;
db.createUser({user:"admin",pwd:"test123",roles:[{role:"root",db:"admin"}]}); // 這裏role的權限一定是root,否則node-express-mongoose會讀不到數據
創建後可以查看:
show users;
如果輸出以上輸入信息,則添加成功。
下面我們來看下 mongodb 一共有哪些權限:
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root
// 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 內部角色:__system
read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
二、mongoose連接
const config = {
DB_URL: 'mongodb://admin:[email protected]:27017/testDB'
};
mongoose.connect(config.DB_URL);
解釋說明:
'mongodb://admin:[email protected]:27017/testDB'
// admin 管理員用戶名
// test123 管理員密碼
// testDB 要連接的數據庫
參考鏈接:
1、https://blog.csdn.net/zgrbsbf...
2、https://blog.csdn.net/szu_lzz...
3、https://blog.csdn.net/leihui_...
4、https://www.cnblogs.com/leino...
5、http://yijiebuyi.com/blog/f9e...