การติดตั้งและจัดการสิทธิ์ใน MongoDB

By KDBEER | Last updated Apr 18, 2022
การติดตั้งและจัดการสิทธิ์ใน-MongoDB-6078dd9f7ac0a4cd230caf36

Table of Contents

  1. การติดตั้ง MongoDB บน Ubuntu 20.04
  2. Start service MongoDB
  3. การเพิ่ม user เพื่อจัดการสิทธิ์ให้ MongoDB
  4. สรุป

MongoDB สามารถทำงานได้แทบจะทุก OS สามารถเข้าไปเลือกวิธีติดตั้งให้เหมาะกับระบบที่ link ด้านล่างนี่ครับ

https://docs.mongodb.com/manual/installation

และบทความนี้ จะยกตัวอย่างการติดตั้ง mongodb บน ubuntu ครับ

การติดตั้ง MongoDB บน Ubuntu 20.04

1. สร้าง mongodb ให้ ubuntu ไปดาวน์โหลดมาติดตั้งได้

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

2. อัปเดต package ของ ubuntu

sudo apt-get update

3. ติดตั้ง MongoDB

sudo apt-get install -y mongodb-org

4. ตรวจสอบผลการติดตั้ง โดยการพิมพ์คำสั่งต่อไปนี้ครับ

mongo --version

และถ้าเห็นผลลัพธ์ดังต่อไปนี้ แสดงว่าติดตั้งสำเร็จครับ

MongoDB shell version v5.0.7
Build Info: {
    "version": "5.0.7",
    "gitVersion": "b977129dc70eed766cbee7e412d901ee213acbda",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

Start service MongoDB

1. เมื่อติดตั้ง mongodb เสร็จแล้ว ก็สามารถ start service ด้วยคำสั่งด้านล่างนี้ครับ

sudo systemctl start mongod

2. เมื่อ start service เรียบร้อยแล้ว ก็สามารถตรวจสอบ status ว่า mongo ทำงานอยู่หรือไม่ด้วยคำสั่งด้านล่างนี้ครับ

sudo systemctl status mongod

ผลลัพธ์

● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-04-16 07:50:02 +07; 3s ago
       Docs: https://docs.mongodb.org/manual

การเพิ่ม user เพื่อจัดการสิทธิ์ให้ MongoDB

หลังจากที่เรา start mongodb service ขึ้นมา และทำการแก้ไข config เสร็จเรียบร้อยแล้ว ก็ให้เปิด terminal ขึ้นมาครับ โดยปกติแล้ว เวลาเราลง mongodb จะให้ตัว mongo client มาด้วย เราสามารถเรียกใช้มันได้ ด้วยคำสั่งนี้ครับ

mongo

ผลลัพธ์

MongoDB shell version v5.0.7
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("2abfe3bb-4cb9-4162-9108-64fcf32bd5d3") }
MongoDB server version: 5.0.7

แรกเริ่มเดิมที ถ้าเรายังไม่ได้กำหนดสิทธิ์ เราจะสามารถเข้าระบบได้เลย เพราะไม่มี auth ใดๆ เพราะฉะนั้น เราต้องสร้าง Admin User ขึ้นมาก่อนครับ

> db.createUser(
... {
...   user: 'root',
...   pwd: 'root',
...   roles: [ { role: 'root', db: 'admin' } ]
... }
... )

เปิด termimal ใหม่ขึ้นมา และใช้คำสั่งต่อไปนี้ เพื่อ connect ไปหา mongodb ครับ

mongo -u 'root' -p 'root' --authenticationDatabase 'admin'

สร้าง user เพิ่มเติมอีกหนึ่ง user ซึ่ง user ต่อไปนี้เราจะให้สิทธิ์แค่ read-write database ที่เรากำหนดเท่านั้นครับ

db.createUser({
  user: 'rwuser',
  pwd: 'rwpassword',
  roles: [{ role: 'readWrite', db: 'myDatabase' }]
})

เพียงเท่านี้ เราก็จะสามารถสร้าง user ใหม่ และกำหนดสิทธิ์ให้ user ได้แล้วครับ สำหรับสิทธิ์อื่นๆ สามารถตรวจสอบได้ลิงก์ด้านล่างนี้ครับ

https://docs.mongodb.com/manual/reference/built-in-roles/

สรุป

บทความนี้ ผมแนะนำวิธีการติดตั้ง MongoDB บน ubuntu และได้แนะนำวิธีเปิด authentication และสร้าง user รวมถึง assign สิทธิ์ให้ user ด้วย หวังว่าจะเป็นประโยชน์นะครับ ขอบคุณมากๆ เลย ที่แวะเข้ามาอ่านนะครับ