MongoDB 設置用戶名密碼和數據庫連接


第一種方式:通過Robo設置

連接mongo,在admin庫下創建賬號,設置賬號、密碼后,勾選角色。

找到 MongoDB 安裝目錄,打開 mongod.cfg文件,找到以下這句:

#security:

修改為:

security:
  authorization: enabled

重啟 MongoDB服務

 

 

第二種方式:通過命令設置超級管理員

設置 admin

use admin  
db.createUser({
  user: 'admin',  // 用戶名
  pwd: '123456',  // 密碼
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 數據庫
  }]
})

設置完成,可以輸入 show users 查看是否設置成功。

開啟驗證

找到 MongoDB 安裝目錄,打開 mongod.cfg文件,找到以下這句:

#security:

修改為:

security:
  authorization: enabled

重啟 MongoDB

打開任務管理器

找到 MongoDB 服務,右鍵重新啟動。

 

這時,我們可以打開 powershell 連接數據庫:

輸入 mongo:

顯示連接成功,但是當我們輸入其他指令時,會提示沒有權限:

登錄數據庫

// 方式一
mongo
use admin
db.auth('admin', '123456')

// 方式二
mongo admin -u admin -p 123456

這時候我們就可以正常訪問和操作數據了。

添加數據庫用戶

我們除了可以設置數據庫的超級管理員以外,還可以給每個數據庫設置單獨的管理員。其只有操作單獨數據的一定權限。

use test  // 跳轉到需要添加用戶的數據庫
db.createUser({
  user: 'fooadmin',  // 用戶名
  pwd: '123456',  // 密碼
  roles:[{
    role: 'readWrite',  // 角色
    db: 'test'  // 數據庫名
  }]
})

常用命令

show users  // 查看當前庫下的用戶

db.dropUser('testadmin')  // 刪除用戶

db.updateUser('admin', {pwd: '654321'})  // 修改用戶密碼

db.auth('admin', '654321')  // 密碼認證

MongoDB 數據庫默認角色

  1. 數據庫用戶角色:read、readWrite
  2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin
  3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
  4. 備份恢復角色:backup、restore
  5. 所有數據庫角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
    dbAdminAnyDatabase
  6. 超級用戶角色:root
 
 
 
 

備注:MongoDB連接數據庫

啟動 MongoDB 服務

通過 shell 連接 MongoDB 服務:mongo

使用用戶 admin 使用密碼 123456 連接到本地的 MongoDB 服務上:mongo://admin:123456@localhost/

更多連接實例

連接本地數據庫服務器,端口是默認的。

mongodb://localhost

使用用戶名fred,密碼foobar登錄localhost的admin數據庫。

mongodb://fred:foobar@localhost

使用用戶名fred,密碼foobar登錄localhost的baz數據庫。

mongodb://fred:foobar@localhost/baz

連接 replica pair, 服務器1為example1.com服務器2為example2。

mongodb://example1.com:27017,example2.com:27017

連接 replica set 三台服務器 (端口 27017, 27018, 和27019):

mongodb://localhost,localhost:27018,localhost:27019

連接 replica set 三台服務器, 寫入操作應用在主服務器 並且分布查詢到從服務器。

mongodb://host1,host2,host3/?slaveOk=true

直接連接第一個服務器,無論是replica set一部分或者主服務器或者從服務器。

mongodb://host1,host2,host3/?connect=direct;slaveOk=true

當你的連接服務器有優先級,還需要列出所有服務器,你可以使用上述連接方式。

安全模式連接到localhost:

mongodb://localhost/?safe=true

以安全模式連接到replica set,並且等待至少兩個復制服務器成功寫入,超時時間設置為2秒。

mongodb://host1,host2,host3/?safe=true;w=2;wtimeoutMS=2000

 


免責聲明!

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



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