mongodb-dba-workshop

Authentication

1. เปิดไฟล์ mongod.conf

  1. เปิดไฟล์ mongod.conf

Windows

เปิดไฟล์ C:\Program Files\MongoDB\Server\7.0\bin\mongod.cfg ด้วย Editor ที่ถนัด

MacOS

ในที่นี้ถ้าเราใช้ homebrew ในการติดตั้ง log จะอยู่แตกต่างกันตามระบบ mac ที่ใช้

Intel chip:

/usr/local/etc/mongod.conf

Apple chip (M)

/opt/homebrew/etc/mongod.conf
  1. เพิ่มส่วนนี้เข้าไปในไฟล์ configuration
security:
    authorization: enabled

ส่วนนี้สามารถทำได้โดยใช้คำสั่งผ่านการรัน mongod ได้เช่นเดียวกัน

mongod --auth

2. ทำการ restart mongod

ทำการปิดและเปิดการทำงานของ MongoDB ใหม่

3. เริ่มสร้าง admin account

  1. ให้แน่ใจว่าเราได้ทำการรัน mongod instance แล้วตามขั้นตอนนี้

  2. ใช้ mongo shell เพื่อเชื่อมต่อกับ mongod instance

mongosh localhost:27017
  1. สลับใช้งาน admin database โดยรันคำสั่งด้านล่าง
use admin
  1. ใช้ createUser() method โดยกำหนด username เป็น globalUserAdmin, password เป็น passwordPrompt(), และ role เป็น userAdminAnyDatabase:
db.createUser(
    {
        user: "globalUserAdmin",
        pwd: passwordPrompt(),
        roles: [
            { role: "userAdminAnyDatabase", db: "admin" }
        ]
    }
)
  1. กรอกตั้งรหัสผ่านของ globalUserAdmin เมื่อมีการถาม
  2. เสร็จแล้วออกจาก mongo shell ด้วยการใช้คำสั่ง quit() หรือ ctrl + C
quit()

4. เช็คการเข้าใช้งานแบบไม่ login

  1. อย่างแรกเราจะลองรันใช้งาน mongosh แบบไม่ใช้ admin account
mongosh localhost:27017
  1. ทดสอบเข้าใช้งาน sample_mflix database โดยใช้คำสั่งด้านล่าง
use sample_mflix
db.movies.find()
  1. จะเห็นว่าเราไม่สามารถใช้งานได้

5. เช็คการเข้าใช้งานด้วย username และ password

  1. เข้าใช้งาน mongo shell ด้วยการใช้ username และ password ที่เราสร้างไว้
mongosh -u globalUserAdmin -p --authenticationDatabase admin localhost:27017
  1. ถ้าเราสามารถเข้าใช้งานได้ แสดงว่าการตั้งค่าการเข้าใช้งานด้วย username และ password สำเร็จ
  2. ลองเข้าดูข้อมูลจะสามารถดูได้ตามสิทธิ์ของเรา
use sample_mflix
db.movies.find()
  1. ลองดู account บน admin database
use admin
db.getUsers()