mongodb開啟權限驗證、超級管理員、用戶權限管理


-

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';

 

 

 

 

 

 

 

 

 

 

 

 

 

-


免責聲明!

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



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