ฐานข้อมูลมีความสำคัญและเป็นหน้าที่ของผู้ดูแลระบบในการควบคุมบทบาทต่างๆ ที่ผู้ใช้สามารถทำได้ภายในฐานข้อมูลที่กำหนด ในฐานะส่วนหนึ่งของการให้สิทธิ์ ผู้ดูแลระบบสามารถกำหนดเอนทิตีผู้ใช้ภายในฐานข้อมูล และให้สิทธิ์หรือเพิกถอนสิทธิ์ต่างๆ แก่บทบาท
ด้วยวิธีนี้ คุณจะสามารถควบคุมได้ว่าใครบ้างที่สามารถเข้าถึงฐานข้อมูลได้ และพวกเขามีสิทธิ์อะไรบ้างหากพวกเขาสามารถเข้าถึงฐานข้อมูลได้ ตัวอย่างเช่น คุณสามารถยกเลิกการแก้ไขฐานข้อมูลหรือให้สิทธิ์ทั้งหมดบนสคีมาแก่ผู้ใช้หรือผู้ใช้ในตารางที่กำหนด คู่มือนี้มีรายละเอียดวิธีใช้ PostgreSQL เพื่อมอบสิทธิ์ทั้งหมดบนสคีมาแก่ผู้ใช้
วิธีให้สิทธิ์แก่ผู้ใช้ใน PostgreSQL
เมื่อคุณสร้างบทบาทใหม่ พวกเขาจะได้รับสิทธิพิเศษบางอย่างตามค่าเริ่มต้น อย่างไรก็ตาม สิทธิ์ส่วนใหญ่กำหนดให้ผู้ดูแลระบบต้องให้สิทธิ์แก่ผู้ใช้ที่แตกต่างกันเพื่อควบคุมการเข้าถึงและควบคุมสคีมา คุณสามารถให้สิทธิ์ทั้งหมดในคราวเดียวหรือแยกกันก็ได้
สำหรับบทช่วยสอนนี้ มาสร้างใหม่กันเถอะ บทบาท ชื่อ ลินุกซ์ฮินท์1 .
$ ซูโด -iu โพสต์เกรส
# สร้างบทบาท linuxhint1 รหัสผ่านเข้าสู่ระบบ 'linuxhint';
โปรดทราบว่าเราเข้าสู่ระบบด้วย โพสต์เกรส, บทบาทเริ่มต้นที่สร้างขึ้นเมื่อคุณติดตั้ง PostgreSQL
เมื่อสร้างบทบาท (ผู้ใช้) แล้ว เราสามารถแสดงรายการบทบาทที่มีได้โดยใช้คำสั่งต่อไปนี้:
บทบาทที่มีอยู่จะแสดงในรูปแบบตาราง
โพสต์เกรส เป็นบทบาทเริ่มต้นและได้รับสิทธิ์ส่วนใหญ่แล้ว อย่างไรก็ตาม บทบาทใหม่ ลินุกซ์ฮินท์1, ไม่มีสิทธิพิเศษใด ๆ จนกว่าเราจะอนุญาต
1. การให้สิทธิ์เฉพาะแก่ผู้ใช้
บทบาทที่สร้างขึ้นไม่สามารถแก้ไขสคีมาเว้นแต่คุณจะอนุญาต มาตรวจสอบสิ่งนี้ด้วยการสร้างตารางเป็นบทบาทเริ่มต้นก่อน โพสต์เกรส
# สร้างชื่อตาราง ( m_id int สร้างขึ้นเสมอ เช่น ตัวตน fname vachar ( 100 ) ไม่เป็นโมฆะ lname varchar ( 100 ) ไม่เป็นโมฆะ อายุ int ) ;
คุณสามารถแสดงรายการความสัมพันธ์ที่มีอยู่ได้ ดังที่แสดงด้านล่าง:
จากนั้น เปิดเชลล์ใหม่และล็อกอินเข้าสู่ PostgreSQL โดยใช้บทบาทอื่น ลินุกซ์ฮินท์1, ที่เราสร้างไว้ก่อนหน้านี้โดยใช้คำสั่งต่อไปนี้:
เดอะ -d ระบุว่าบทบาทคือการใช้ฐานข้อมูล Postgres
พยายามอ่านเนื้อหาของตารางที่เราสร้างขึ้นโดยใช้ เลือก สั่งการ.
# เลือก * จากชื่อ;
มันส่งคืน a ปฏิเสธการอนุญาต ข้อผิดพลาดขัดขวางผู้ใช้จากการเข้าถึงตาราง
ในกรณีเช่นนี้ เราจำเป็นต้องให้สิทธิ์แก่บทบาทในการเลือก/ดูข้อมูลจากตารางที่กำหนดโดยใช้ไวยากรณ์ต่อไปนี้:
ในการให้สิทธิ์ ให้ใช้เซสชัน Postgres
เมื่อได้รับแล้ว ให้ลองรันคำสั่งก่อนหน้าอีกครั้ง
แค่นั้นแหละ. คุณสามารถให้สิทธิ์เลือกแก่ผู้ใช้เฉพาะรายได้
2. ให้สิทธิ์ทั้งหมดใน Schema แก่ผู้ใช้
จนถึงตอนนี้ เราสามารถให้สิทธิ์เพียงหนึ่งสิทธิ์บนสคีมาแก่ผู้ใช้ นั่นยังไม่เพียงพอ ผู้ใช้จะแก้ไขสคีมาไม่ได้เว้นแต่คุณจะให้สิทธิ์ทั้งหมดแก่สคีมา เช่น การแทรกและการอัปเดต
มีหลายวิธีในการบรรลุเป้าหมายนี้ ก่อนอื่นขอ ให้สิทธิ์ผู้ใช้ทั้งหมดแก่ตารางที่กำหนด โดยใช้ไวยากรณ์ต่อไปนี้:
# ให้ทั้งหมดบน table_name ถึง role_name;
ผู้ใช้สามารถโต้ตอบและแก้ไขตารางเฉพาะได้ อย่างไรก็ตาม พวกเขาไม่สามารถทำงานกับตารางอื่นในสคีมา
ถึง ให้สิทธิ์ทั้งหมดบนตารางทั้งหมดในสคีมาเฉพาะ ให้ใช้ไวยากรณ์ต่อไปนี้:
# มอบให้กับทุกตารางใน SCHEMA schema_name ถึง role_name;
สุดท้ายคุณสามารถ ให้สิทธิ์เฉพาะ เช่น การแทรกหรือการเลือกตารางทั้งหมดบนสคีมาที่บทบาทที่กำหนด .
บทบาทสามารถเลือกข้อมูลในตารางทั้งหมดในสคีมาที่ระบุ นั่นคือวิธีที่คุณกำหนดสิทธิ์ที่จะมอบให้กับผู้ใช้ที่แตกต่างกันในสคีมา
บทสรุป
PostgreSQL เป็น DBMS ที่มีประสิทธิภาพ มีคุณสมบัติที่แตกต่างกันรวมถึงการให้ผู้ดูแลระบบให้สิทธิ์ต่างๆแก่ผู้ใช้ การให้สิทธิ์ทั้งหมดในสคีมาแก่ผู้ใช้หมายถึงการอนุญาตให้ผู้ใช้แก้ไขและโต้ตอบกับตารางทั้งหมดในสคีมาที่ระบุ เราได้เห็นวิธีใช้สิ่งนั้นและวิธีอื่นๆ ในการให้สิทธิ์ในสคีมากับบทบาทโดยใช้คำสั่ง GRANT ใน PostgreSQL