Windows下安裝MongoDB並配置登陸驗證


一、安裝前創建文件目錄

1.創建C:\MongoDB目錄。
2.創建C:\MongoDB\data目錄。
3.創建C:\MongoDB\logs目錄。
4.創建C:\MongoDB\logs\mongo.log文件。

二、官網下載安裝

安裝目錄選擇第一步創建的目錄。

三、加入系統環境變量

C:\MongoDB\bin

四、安裝服務

1.創建配置文件C:\MongoDB\mongod.conf

#數據庫路徑  
dbpath=C:\MongoDB\data  
#日志輸出文件路徑  
logpath=C:\MongoDB\logs\mongo.log  
#錯誤日志采用追加模式  
logappend=true
#啟用日志文件,默認啟用  
journal=true  
#這個選項可以過濾掉一些無用的日志信息,若需要調試使用請設置為false  
quiet=true  
#端口號 默認為27017  
port=27017  
#密碼驗證  
#auth=true

2.安裝服務

mongod --config "C:\MongoDB\mongod.conf" --install --serviceName "MongoDB"

3.啟動

net start MongoDB

4.創建管理員

mongo
>use admin;
>db.createUser(
  { user: "admin",
    customData: {description: "superuser"},
    pwd: "password",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
);

5.創建超級管理員

>use admin
>db.createUser(
    {
        user:"root",
        pwd:"password",
        roles:["root"]
    }
);

角色具體說明:

注意:創建某個數據庫用戶時,應先use dataBaseName切換到對應數據庫

Read:允許用戶讀取指定數據庫
readWrite:允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
dbOwner:數據庫擁有者,包含readWrite、dbAdmin、userAdmin
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限
root:只在admin數據庫中可用。超級賬號,超級權限

五、配置登陸驗證

1.取消注釋

配置文件C:\MongoDB\mongod.conf中的

#auth=true

2.重啟服務加載配置文件

sc stop MongoDB
sc start MongoDB

3.測試

mongo
>use admin;
>db.auth("admin", "password");
1

P.S:

創建業務數據庫管理員

>db.createUser({
    user:"user1",
    pwd:"123456",
    customData:{
        name:'coodyz',
        email:'coodyz@qq.com',
        age:20,
    },
    roles:[
        {role:"readWrite",db:"db001"},
        {role:"readWrite",db:"db002"},
        'read'// 對其他數據庫有只讀權限,對db001、db002是讀寫權限
    ]
});

修改密碼

>use admin;
>db.changeUserPassword("username", "password");

修改密碼和用戶信息

>db.runCommand(
    {
        updateUser:"username",
        pwd:"password",
        customData:{title:"password"}
    }
);

查看所有用戶

>use admin
>db.system.users.find().pretty()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM