以下情境為單機模式
port: tcp/27017
資料庫路徑: /var/lib/mongodb

1. 在shell 啟動一個mongod 服務
# mongod --port 27017 --dbpath /var/lib/mongodb

2. 另開一個shell 登入mongodb,預設沒有認證功能,直接登入
# mongo --port 27017

3. 在mongo shell 新增資料庫管理員

> use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: passwordPrompt(), // or cleartext password
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

4. 停用並重啟mongodb 時加入 --auth 參數

> db.adminCommand( { shutdown: 1 } )

 

# mongod --auth --port 27017 --dbpath /var/lib/mongodb

 

 

如果是呼叫設定檔,請在設定檔加入以下參數

security:
    authorization: enabled

5. 測試用資料庫管理員帳號登入

# mongo --port 27017  --authenticationDatabase "admin" -u "myUserAdmin" -p

6. 新增一般使用者

> use test
db.createUser(
  {
    user: "myTester",
    pwd:  passwordPrompt(),   // or cleartext password
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7. 測試一般使用者登入

# mongo --port 27017 -u "myTester" --authenticationDatabase "test" -p

8. 測試新增資料

> db.foo.insert( { x: 1, y: 1 } )

參考資訊
https://docs.mongodb.com/manual/tutorial/enable-authentication/

undefined

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 helloworld 的頭像
    helloworld

    Hello World

    helloworld 發表在 痞客邦 留言(0) 人氣()