วิธีสร้างผู้ใช้ใน PostgreSQL การใช้ PgAdmin

⚡ สรุปอย่างชาญฉลาด

การสร้างผู้ใช้ใน PostgreSQL สามารถทำได้ด้วยภาพใน pgAdmin หรือใช้คำสั่ง CREATE USER ใน SQL Shell จากนั้นคุณสามารถให้สิทธิ์ด้วยคำสั่ง GRANT แก้ไขบทบาทด้วยคำสั่ง ALTER USER และลบบัญชีผู้ใช้ด้วยคำสั่ง DROP USER

  • 🖱️ สร้างใน pgAdmin: คลิกขวาที่ Login/Group Roles ป้อนชื่อ ตั้งรหัสผ่าน และสิทธิ์การใช้งาน จากนั้นบันทึกเพื่อสร้างผู้ใช้
  • ???? คำสั่งสร้างผู้ใช้: ใน SQL Shell คำสั่ง CREATE USER name WITH options จะตั้งค่าชื่อผู้ใช้ สิทธิ์ผู้ใช้ระดับสูง และรหัสผ่านได้ในคำสั่งเดียว
  • 🔑 การเข้าถึงทุนสนับสนุน: คำสั่ง GRANT ALL PRIVILEGES ON DATABASE db TO user จะให้สิทธิ์การเข้าถึงฐานข้อมูลแก่ผู้ใช้ที่มีอยู่แล้ว
  • 🔧 แก้ไขผู้ใช้: คำสั่ง ALTER USER ใช้สำหรับปรับสิทธิ์ของบทบาทผู้ใช้ โดยเพิ่มหรือยกเลิกสิทธิ์ต่างๆ เช่น สิทธิ์ SUPERUSER
  • 🗑️ วางผู้ใช้: คำสั่ง DROP USER จะลบบัญชีผู้ใช้ แต่จะลบก็ต่อเมื่อบัญชีผู้ใช้นั้นไม่มีสิทธิ์ครอบครองอ็อบเจ็กต์ใดๆ ในฐานข้อมูลอีกต่อไปแล้ว
  • 🧾 บทบาท vs ผู้ใช้: คำสั่ง CREATE USER จะตั้งค่าเริ่มต้นเป็น LOGIN ในขณะที่คำสั่ง CREATE ROLE จะตั้งค่าเริ่มต้นเป็น NOLOGIN ส่วนคำสั่งอื่นๆ จะเหมือนกัน

วิธีสร้างผู้ใช้ใน PostgreSQL การใช้ PgAdmin

วิธีการสร้าง PostgreSQL ผู้ใช้ใน PgAdmin

ต่อไปนี้เป็นกระบวนการทีละขั้นตอนเกี่ยวกับวิธีสร้างผู้ใช้ใน PostgreSQL ผู้ดูแลระบบ:

ขั้นตอน 1) คลิกขวาที่เข้าสู่ระบบ

ในขั้นตอนแรก คลิกขวาที่บทบาทกลุ่มเข้าสู่ระบบ -> สร้าง -> คลิกที่บทบาทกลุ่มเข้าสู่ระบบ...

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 2) สร้างบทบาทการเข้าสู่ระบบ/กลุ่ม

ตอนนี้ ป้อนชื่อสำหรับการเข้าสู่ระบบ

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 3) คลิกที่คำจำกัดความและป้อนรายละเอียด

  1. ใส่รหัสผ่าน
  2. วันหมดอายุของบัญชี

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 4) ส่วนสิทธิพิเศษ

  1. Toggle สามารถเข้าสู่ระบบปุ่ม YES
  2. Toggle Superuser เป็น YES

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 5) การขอ SQL ส่วน

  1. คุณจะเห็นแบบสอบถาม SQL เพื่อสร้างผู้ใช้ตามการเลือกในขั้นตอนก่อนหน้า
  2. คลิกปุ่มบันทึก

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 6) สร้างบทบาทแล้ว

ตอนนี้ บทบาทจะสะท้อนให้เห็นในแผนผังออบเจ็กต์

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 7) สร้าง ฐานข้อมูล

ตอนนี้ มอบหมายเจ้าของ myguru ให้กับมันดังที่แสดงด้านล่าง สร้างตัวอย่างผู้ใช้ Postgres

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

ขั้นตอน 8) บรรทัดคำสั่ง

ตอนนี้คุณสามารถเห็นได้ว่าเจ้าของคือ myguru

สร้างบัญชีตัวแทน PostgreSQL ผู้ใช้ใน PgAdmin

PostgreSQL สร้างผู้ใช้ SQLShell (บรรทัดคำสั่ง)

คุณสามารถสร้างผู้ใช้ได้โดยใช้คำสั่งบรรทัดคำสั่ง

สร้างผู้ใช้

วิธีสร้างผู้ใช้ด้วยรหัสผ่านของ Postgres นี้สะดวกกว่าสำหรับโปรแกรมเมอร์และผู้ดูแลระบบเนื่องจากสามารถเข้าถึงคอนโซลของ PostgreSQL เซิร์ฟเวอร์ ยิ่งไปกว่านั้น พวกเขาต้องการการสร้างผู้ใช้ Postgres และดำเนินการด้วยคำสั่งเดียวแทนการเข้าสู่ระบบและการใช้อินเทอร์เฟซของ PostgreSQL ลูกค้า

ไวยากรณ์:

CREATE USER name [ WITH ] option [ ... ]

where option can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    | REPLICATION | NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL
    | VALID UNTIL 'timestamp'
    | IN ROLE role_name [, ...]
    | IN GROUP role_name [, ...]
    | ROLE role_name [, ...]
    | ADMIN role_name [, ...]
    | USER role_name [, ...]
    | SYSID uid

ตัวอย่าง:

CREATE USER tom;

จะสร้างผู้ใช้ทอม

CREATE USER tom WITH SUPERUSER;

จะสร้างผู้ใช้ชื่อ tom ที่มีสิทธิ์ระดับสูงสุด มาดูตัวอย่างต่อไปนี้กัน

ขั้นตอน 1) เรากำลังสร้าง superuser ที่ถูกต้องจนถึง 3rd เมษายน 2025 เวลา 11:50:38 น. ตามเวลามาตรฐานอินเดีย (IST) ป้อนคำสั่งต่อไปนี้

CREATE USER mytest WITH
	LOGIN
	SUPERUSER
	CREATEDB
	CREATEROLE
	INHERIT
	NOREPLICATION
	CONNECTION LIMIT -1
	VALID UNTIL '2025-04-03T11:50:38+05:30'
	PASSWORD '123456';

สร้างผู้ใช้ SQLShell

ขั้นตอน 2) ป้อนคำสั่ง \du ลงในรายการตรวจสอบของผู้ใช้

สร้างผู้ใช้ SQLShell

หมายเหตุ: คำสั่ง CREATE USER นั้นเหมือนกับคำสั่ง CREATE ROLE ความแตกต่างระหว่างสองคำสั่งนี้คือ เมื่อใช้คำสั่ง CREATE User ใน PostgreSQL ระบบจะถือว่าอยู่ในสถานะ LOGIN โดยค่าเริ่มต้น ในขณะที่เมื่อใช้ตัวเลือก CREATE ROLE ระบบจะถือว่าอยู่ในสถานะ NOLOGIN

เพิ่มผู้ใช้ที่มีอยู่ไปยังฐานข้อมูล

คุณสามารถให้สิทธิ์ผู้ใช้ในการเข้าถึงฐานข้อมูลได้

ตัวอย่าง เราให้สิทธิ์ผู้ใช้ “mytest” ทั้งหมดแก่ผู้ใช้ guru99

GRANT ALL PRIVILEGES ON DATABASE guru99 TO mytest;

เพิ่มผู้ใช้ที่มีอยู่ไปยังฐานข้อมูล

ภายหลังการประหารชีวิต PostgreSQL เพิ่มคำสั่งผู้ใช้ ผู้ใช้จะสามารถเข้าถึงฐานข้อมูลตามสิทธิ์ที่กำหนด

คำสั่ง GRANT นั้นทรงพลังมาก คุณสามารถให้สิทธิ์โดยละเอียด เช่น เลือก แทรก อัปเดต ให้กับผู้ใช้ได้

PostgreSQL กำลังอัปเดต USER

การเปลี่ยนแปลงสิทธิ์ของผู้ใช้ที่มีอยู่

ขณะนี้มีผู้ใช้ใหม่ "mytest" แล้ว คุณสามารถใช้ ALTER USER เพื่อเปลี่ยนสิทธิ์ที่มอบให้กับบรรณารักษ์ได้

รูปแบบของ ALTER USER Postgres จะมีชื่อผู้ใช้ตามด้วยตัวเลือกบางอย่างที่จะบอก PostgreSQL ซึ่งอนุญาตให้ทำการเปลี่ยนแปลง:

ALTER USER role_specification WITH OPTION1 OPTION2 OPTION3;

Revตกลงสิทธิ์

คุณต้องใช้คำสั่งนี้เมื่อคุณทำผิดพลาดและมอบหมายสิทธิ์ไม่ถูกต้องซึ่งคุณอาจต้องการเพิกถอน คุณสามารถใช้คำสั่ง ALTER USER โดยไม่มีคำนำหน้าก่อนตัวเลือกที่อนุญาต

ตัวอย่างเช่น เราสามารถลบสถานะ SUPERUSER ออกจาก mytest ได้ เช่น:

ALTER USER mytest WITH NOSUPERUSER;

เมื่อใช้ \du คุณจะสังเกตเห็นว่าสิทธิ์ Superuser ถูกลบออก

Revตกลงสิทธิ์

การมอบหมายการอนุญาต

คุณสามารถใช้สิทธิ์ผู้ใช้ SUPERUSER ย้อนกลับ “mytest” ได้โดยใช้คำสั่งต่อไปนี้

ALTER USER mytest WITH SUPERUSER;

เมื่อใช้ \du คุณจะสังเกตเห็นว่ามีการเพิ่มสิทธิ์ Superuser

การมอบหมายการอนุญาต

PostgreSQL กำลังลบผู้ใช้

คุณสามารถใช้การลบผู้ใช้ใดๆ หากคุณแน่ใจว่าผู้ใช้รายนั้นไม่ได้มีไว้สำหรับฐานข้อมูลของคุณอีกต่อไป โปรดทราบว่าการลบผู้ใช้จะไม่ส่งผลกระทบต่อฐานข้อมูลจริง

Syntax: DROP USER [user]

หากต้องการลบผู้ใช้ คุณต้องแน่ใจว่าผู้ใช้นั้นเป็นเจ้าของฐานข้อมูล มิฉะนั้น คุณอาจได้รับข้อความแสดงข้อผิดพลาด

ERROR:  role "username" cannot be dropped because some objects depend on it

ตัวอย่าง:

  1. บัญชี “myguru” เป็นเจ้าของฐานข้อมูล “demoDB”
  2. ป้อนคำสั่ง DROP USER myguru
  3. มีการแสดงข้อผิดพลาด

PostgreSQL กำลังลบผู้ใช้

เมื่อเราเปลี่ยนเจ้าของฐานข้อมูลแล้ว ผู้ใช้สามารถลบผู้ใช้ได้

PostgreSQL กำลังลบผู้ใช้

แผ่นโกง

นี่คือคำสั่งที่สำคัญ

คำสั่ง Descriptไอออน
CREATE USER [user]
คำสั่งสร้างผู้ใช้
ALTER USER role_specification
การเปลี่ยนแปลงสิทธิ์ของผู้ใช้ที่มีอยู่
ALTER USER [user]
Revตกลงสิทธิ์
ALTER USER [user name] WITH SUPERUSER
การมอบหมายการอนุญาต
DROP USER [user]
คำสั่งให้ลบผู้ใช้

คำถามที่พบบ่อย

ในเชลล์ psql ให้รันคำสั่ง \du เพื่อแสดงรายการบทบาททั้งหมดและคุณลักษณะของบทบาทเหล่านั้น นอกจากนี้ คุณยังสามารถสอบถามแคตตาล็อกระบบด้วยคำสั่ง SELECT rolname FROM pg_roles เพื่อรับข้อมูลเดียวกันโดยใช้โปรแกรมได้

ใช้คำสั่ง ALTER USER เช่น ALTER USER mytest WITH PASSWORD 'newpassword' การเปลี่ยนแปลงจะมีผลทันที รหัสผ่านจะถูกจัดเก็บในรูปแบบเข้ารหัส และมีเพียงผู้ใช้ระดับสูงสุดหรือผู้ใช้เองเท่านั้นที่สามารถเปลี่ยนแปลงได้

In PostgreSQLผู้ใช้และบทบาทเป็นวัตถุเดียวกัน คำสั่ง CREATE USER สร้างบทบาทที่สามารถล็อกอินได้โดยค่าเริ่มต้น ในขณะที่คำสั่ง CREATE ROLE สร้างบทบาทที่ไม่สามารถล็อกอินได้เว้นแต่คุณจะเพิ่มแอตทริบิวต์ LOGIN

AI สามารถสร้างคำสั่ง CREATE USER, GRANT และ ALTER USER จากคำอธิบายสิทธิ์การเข้าถึงที่คุณต้องการ และอธิบายสิทธิ์แต่ละอย่างได้ ซึ่งจะช่วยให้คุณสามารถใช้หลักการรักษาความปลอดภัยแบบจำกัดสิทธิ์โดยไม่ต้องจำไวยากรณ์

ใช่แล้ว AI สามารถแนะนำคำสั่ง GRANT ที่ละเอียดกว่า ซึ่งจะให้สิทธิ์เฉพาะที่จำเป็นเท่านั้น เตือนไม่ให้ให้สิทธิ์ผู้ใช้ระดับสูงมากเกินไป และแนะนำให้ใช้บทบาทเพื่อจัดกลุ่มสิทธิ์เพื่อให้จัดการได้ง่ายและปลอดภัยยิ่งขึ้น

สรุปโพสต์นี้ด้วย: