-
mongodb賬戶權限配置
1、創建超級管理員權限用戶
use admin
db.createUser({ user:'admin',//用戶名 pwd:'123456',//密碼 roles:[{ role:'root',db:'admin'}]//root 代表超級管理員權限 admin代表給admin數據庫加的超級管理員 }) db.createUser({ user:'admin', pwd:'123456', roles:[{ role:'root',db:'admin'}] })
補充說明
// mongodb數據庫角色 1、數據庫用戶角色: read、readWrite 2、數據庫管理角色:dbAdmin、dbOwner、userAdmin 3、集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager 4、備份恢復角色:backup、restore 5、所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase 6、超級用戶角色:root 7、內部角色:__system 8、內建的角色 角色說明: read:允許用戶讀取指定數據庫 readWrite:允許用戶讀寫指定數據庫 dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫里創建、刪除和管理用戶 clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。 readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限 readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限 userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限 dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。 root:只在admin數據庫中可用。超級賬號,超級權限
2、修改嗎,mongodb數據庫配置文件 注意空格 不能用tab
// 路徑: D:\mongodb\bin\mongod.cfg security: authorization: enabled
補充:mongod.cfg 配置前 備份一下
# mongod.conf # for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/ # Where and how to store data. storage: dbPath: D:\mongodb\data #配置數據庫文件存儲目錄 journal: enabled: true # engine: # wiredTiger: # where to write logging data. systemLog: destination: file logAppend: true path: D:\mongodb\log\mongod.log #配置日志目錄 # network interfaces net: port: 27017 #配置端口 默認端口為27017 bindIp: 127.0.0.1 #綁定ip地址 #processManagement: security: #配置安全相關的東西 authorization: enabled #默認沒有這個代碼 打開注釋就開啟了權限認證 #operationProfiling: #replication: #sharding: ## Enterprise-Only Options: #auditLog: #snmp:
3、重新啟動mongodb
win + r
services.msc
不過權限設置沒有生效,嘗試了不少,這個5版本的mongodb版本過於新,暫時沒有把權限設置成功,不過學到了幾個命令
mongo 啟動命令
net start MongoDB
mongo停止命令
net stop MongoDB
指定mongo配置文件
mongod --config "D:\mongodb\bin\mongod.cfg" --install
以權限認證的方式啟動服務
mongod --auth --port 27017 --dbpath D:\mongodb\data
或者
mongod --auth
繼續往下寫
4、用超管賬號連接數據庫
// 第四步:用超級管理員賬戶連接數據表 mongo admin -u 用戶名 -p 密碼 mongo 127.0.0.1:27017/test -u user -p password //遠程連接方式 mongo admin -u admin -p 123456 //用admin賬戶去連接數據庫
5、給其它數據庫創建一個賬號(用戶)
db.createUser({ user:'ityingadmin',//創建一個itying pwd:'123456', roles:[{ role:'dbOwner',db:'itying'}] })
6、刪除一個賬號(用戶)
db.dropUser('ityingadmin')
7、給某個賬戶授權
//給admin賬戶授權 use admin db.auth('admin','123456') //給ityingadmin賬號授權 前提是先創建有這個賬戶 use admin db.auth('ityingadmin','123456')
8、用ityingadmin賬號連接admin數據庫
mongo admin -u ityingadmin -p 123456
9、給itying數據庫創建一個賬號
通過超管賬號連接數據庫,切換到itying數據庫,創建賬號
use admin //在itying數據庫下創建一個 賬戶 use itying db.createUser({ user:'ityingadmin', pwd:'123456', roles:[{ role:'dbOwner',db:'itying'}] }) //然后就可以用 此賬號連接itying數據庫 mongo itying -u ityingadmin -p 123456
總結一下權限操作命令
查看當前數據庫用戶
show users
刪除當前數據庫某一個用戶
db.dropUser('ityingadmin')
修改用戶密碼:
db.updateUser("ityingadmin",{"pwd":"123456"})
密碼認證,權限驗證:驗證之后就可以用這個賬號訪問數據庫
db.auth('ityingadmin','123456')
nodejs連接數據庫時需要配置的賬戶密碼
const url = 'mongodb://admin:123456@localhost:27017';
-