สิทธิ์การเข้าถึงใน PostgreSQL

การสร้างฐานข้อมูล PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Role และสิทธิ์ใน PostgreSQL

  • ผู้ใช้คือ role ประเภทหนึ่ง
  • สามารถกำหนด group role ได้เช่นกัน
  • สิทธิ์เข้าถึง object ในฐานข้อมูลจะมอบให้กับ role
การสร้างฐานข้อมูล PostgreSQL

คำสั่ง GRANT

  • เจ้าของจะ "grant" สิทธิ์ให้กับ role
  • คำสั่ง GRANT ใช้มอบสิทธิ์
  • สิทธิ์ที่สามารถ grant ได้ เช่น:
    • SELECT
    • DELETE
    • UPDATE
      GRANT p ON obj TO grantee;
      
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ฐานข้อมูลการเงินส่วนตัว

CREATE TABLE account (
    id SERIAL PRIMARY KEY,
    short_name VARCHAR(25),
    provider_id INTEGER REFERENCES provider(id),
    balance DECIMAL
);
CREATE USER fin WITH PASSWORD '38\5)uk1+3&}*Y';
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ฐานข้อมูลการเงินส่วนตัว

  • ผู้ใช้ fin ต้องการเข้าถึงตาราง account
  • สิทธิ์ของ fin
    • เพิ่มบัญชีใหม่
    • แก้ไขบัญชี
    • ดึงข้อมูลบัญชี
  • Superuser มอบสิทธิ์
    GRANT INSERT ON account TO fin;
    
GRANT UPDATE ON account TO fin;
GRANT SELECT ON account TO fin;
การสร้างฐานข้อมูล PostgreSQL

สิทธิ์ในการแก้ไขตาราง

  • บางสิทธิ์ไม่สามารถ grant ได้
  • การแก้ไขตารางต้องเป็นเจ้าของ
ALTER TABLE account ADD COLUMN date_opened DATE;
ALTER TABLE account RENAME COLUMN short_name

TO nickname;
ALTER TABLE account OWNER TO fin;
การสร้างฐานข้อมูล PostgreSQL

มาฝึกกันเถอะ!

การสร้างฐานข้อมูล PostgreSQL

Preparing Video For Download...