環境:win10,MongoDB 3.6.13html
一、下載
官網:http://www.runoob.com/mongodb/mongodb-window-install.html
因爲是在window下,因此我下載的是3.6.13-signed.msi,和普通安裝軟件exe同樣mongodb
二、配置
安裝以後,還須要配置,好比數據庫的數據安裝路徑,日誌路徑等等。
MongoDB將數據目錄存儲在 db 目錄下。可是這個數據目錄不會主動建立,須要咱們在安裝完成後須要手動建立。
爲日誌文件,數據文件和配置文件建立目錄
配置文件目錄:D:\MongoData\config\mongod.cfg
日誌文件目錄:D:\MongoData\dblog\
數據文件目錄:D:\MongoData\db\
27017是默認端口!數據庫
配置mongod.cfg,內容以下
systemLog:
destination: file
path: D:\MongoData\dblog\mongod.log
logAppend: true
storage:
journal:
enabled: true
dbPath: D:\MongoData\db
net:
port: 27017windows
#security:
#authorization: enabled
3.安裝服務
配置好上面後,在到cmd中執行(使用管理員權限)
cmd進入mongodb的安裝目錄下的bin目錄
cd C:\Program Files\MongoDB\Server\3.6\bin
mongod.exe --config "D:\MongoData\config\mongod.cfg" --install --serviceName "MongoDB"
能夠看到windows服務管理界面多了一個MongoDB服務,設置啓動模式爲開機自動啓動函數
啓動mongodb服務
net start MongoDB
關閉mongodb服務
net stop MongoDB
刪除Windows服務
方法1:普通cmd命令窗口
cd C:\Program Files\MongoDB\Server\3.6\bin
mongod.exe --config D:\MongoData\config\mongod.cfg --remove
方法2:在系統管理員窗口輸入:sc delete MongoDB 工具
4.用MongoDB鏈接管理工具鏈接 好比Navicat Premium 12集成了MongoDB管理工具rest
五、用戶權限設置
一、MongoDB是沒有默認管理員帳號,因此要先添加管理員帳號,再開啓權限認證。
二、切換到admin數據庫,添加的帳號纔是管理員帳號。
三、用戶只能在用戶所在數據庫登陸,包括管理員帳號。
四、管理員能夠管理全部數據庫,可是不能直接管理其餘數據庫,要先在admin數據庫認證後才能夠。日誌
建立管理員帳號
在admin數據庫中,添加一個用戶並賦予userAdminAnyDatabase角色。
例如,下面是在admin數據庫中建立一個名爲myUserAdmin用戶。
注意:你建立用戶的這個數據庫(這裏就是admin數據庫)是用戶認證數據庫, 儘管用戶是在這個數據庫認證,而用戶又有其餘數據庫的角色;即,用戶認證數據庫不限制用戶權限。
在window管理員下啓動cmd,而且鏈接上mongodb,
cd c:\Program Files\MongoDB\Server\3.6\bin
輸入mongo.exehtm
建立用戶命令
use admin
db.createUser(
{
user: "myadmin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
驗證權限
db.auth("myadmin","123456") blog
6.開啓權限驗證
要開啓配置文件mongod.cfg的authorization的權限
而後重啓mongodb服務
7.添加普通用戶
一、一旦通過認證的用戶管理員,能夠使用db.createUser()去建立額外的用戶,你能夠分配mongodb內置的角色或用戶自定義的角色給用戶。
二、這個myUserAdmin用戶僅僅只有特權去管理用戶和角色,myUserAdmin,若是你試圖執行其餘任何操做,例如在test數據庫中的foo集合中去讀數據,mongodb將返回錯誤。
三、你建立用戶的數據庫是該用戶認證數據庫。儘管用戶認證是這個數據庫,用戶依然能夠有其餘數據庫的角色。即用戶認證數據庫不限制用戶權限。
進入到自定義的數據庫中
use zns_db
執行
db.createUser(
{
user: "user1",
pwd: "123456",
roles: [
{ role: "dbOwner", db: "zns_db" },
]
}
)
驗證權限
db.auth("user1","123456")
刪除用戶命令
//db.dropUser("user1")
MongoDB數據庫角色
內建的角色
數據庫用戶角色:read、readWrite;
數據庫管理角色:dbAdmin、dbOwner、userAdmin;
集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
備份恢復角色:backup、restore;
全部數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超級用戶角色:root // 這裏還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
內部角色:__system
角色說明: Read:容許用戶讀取指定數據庫 readWrite:容許用戶讀寫指定數據庫 dbAdmin:容許用戶在指定數據庫中執行管理函數,如索引建立、刪除,查看統計或訪問system.profile userAdmin:容許用戶向system.users集合寫入,能夠找指定數據庫裏建立、刪除和管理用戶 clusterAdmin:只在admin數據庫中可用,賦予用戶全部分片和複製集相關函數的管理權限。 readAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀權限 readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的讀寫權限 userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的userAdmin權限 dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶全部數據庫的dbAdmin權限。 root:只在admin數據庫中可用。超級帳號,超級權限