PostgreSQL ให้สิทธิ์ทั้งหมดใน Schema แก่ผู้ใช้

Postgresql Hi Siththi Thanghmd Ni Schema Kae Phu Chi



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

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







วิธีให้สิทธิ์แก่ผู้ใช้ใน PostgreSQL

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



สำหรับบทช่วยสอนนี้ มาสร้างใหม่กันเถอะ บทบาท ชื่อ ลินุกซ์ฮินท์1 .



$ ซูโด -iu โพสต์เกรส
# สร้างบทบาท linuxhint1 รหัสผ่านเข้าสู่ระบบ 'linuxhint';


โปรดทราบว่าเราเข้าสู่ระบบด้วย โพสต์เกรส, บทบาทเริ่มต้นที่สร้างขึ้นเมื่อคุณติดตั้ง PostgreSQL






เมื่อสร้างบทบาท (ผู้ใช้) แล้ว เราสามารถแสดงรายการบทบาทที่มีได้โดยใช้คำสั่งต่อไปนี้:

# \ จาก


บทบาทที่มีอยู่จะแสดงในรูปแบบตาราง




โพสต์เกรส เป็นบทบาทเริ่มต้นและได้รับสิทธิ์ส่วนใหญ่แล้ว อย่างไรก็ตาม บทบาทใหม่ ลินุกซ์ฮินท์1, ไม่มีสิทธิพิเศษใด ๆ จนกว่าเราจะอนุญาต

1. การให้สิทธิ์เฉพาะแก่ผู้ใช้

บทบาทที่สร้างขึ้นไม่สามารถแก้ไขสคีมาเว้นแต่คุณจะอนุญาต มาตรวจสอบสิ่งนี้ด้วยการสร้างตารางเป็นบทบาทเริ่มต้นก่อน โพสต์เกรส

# สร้างชื่อตาราง ( m_id int สร้างขึ้นเสมอ เช่น ตัวตน fname vachar ( 100 ) ไม่เป็นโมฆะ lname varchar ( 100 ) ไม่เป็นโมฆะ อายุ int ) ;



คุณสามารถแสดงรายการความสัมพันธ์ที่มีอยู่ได้ ดังที่แสดงด้านล่าง:


จากนั้น เปิดเชลล์ใหม่และล็อกอินเข้าสู่ PostgreSQL โดยใช้บทบาทอื่น ลินุกซ์ฮินท์1, ที่เราสร้างไว้ก่อนหน้านี้โดยใช้คำสั่งต่อไปนี้:

$ psql -ใน ลินุกซ์ฮินท์1 -d โพสต์เกรส



เดอะ -d ระบุว่าบทบาทคือการใช้ฐานข้อมูล Postgres

พยายามอ่านเนื้อหาของตารางที่เราสร้างขึ้นโดยใช้ เลือก สั่งการ.

# เลือก * จากชื่อ;


มันส่งคืน a ปฏิเสธการอนุญาต ข้อผิดพลาดขัดขวางผู้ใช้จากการเข้าถึงตาราง


ในกรณีเช่นนี้ เราจำเป็นต้องให้สิทธิ์แก่บทบาทในการเลือก/ดูข้อมูลจากตารางที่กำหนดโดยใช้ไวยากรณ์ต่อไปนี้:

# ให้สิทธิ์ชื่อบน table_name กับ role_name;


ในการให้สิทธิ์ ให้ใช้เซสชัน Postgres


เมื่อได้รับแล้ว ให้ลองรันคำสั่งก่อนหน้าอีกครั้ง


แค่นั้นแหละ. คุณสามารถให้สิทธิ์เลือกแก่ผู้ใช้เฉพาะรายได้

2. ให้สิทธิ์ทั้งหมดใน Schema แก่ผู้ใช้

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

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

# ให้ทั้งหมดบน table_name ถึง role_name;



ผู้ใช้สามารถโต้ตอบและแก้ไขตารางเฉพาะได้ อย่างไรก็ตาม พวกเขาไม่สามารถทำงานกับตารางอื่นในสคีมา

ถึง ให้สิทธิ์ทั้งหมดบนตารางทั้งหมดในสคีมาเฉพาะ ให้ใช้ไวยากรณ์ต่อไปนี้:

# มอบให้กับทุกตารางใน SCHEMA schema_name ถึง role_name;



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

# ให้สิทธิ์ _name กับตารางทั้งหมดใน SCHEMA schema_name ถึง role_name;



บทบาทสามารถเลือกข้อมูลในตารางทั้งหมดในสคีมาที่ระบุ นั่นคือวิธีที่คุณกำหนดสิทธิ์ที่จะมอบให้กับผู้ใช้ที่แตกต่างกันในสคีมา

บทสรุป

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