คุณพบชวเลขเพื่อตั้งสิทธิ์สำหรับตารางที่มีอยู่ทั้งหมดในสคีมาที่กำหนด คู่มือชี้แจง :
(แต่โปรดทราบว่าALL TABLES
รวมถึงมุมมองและตารางต่างประเทศ )
ฉันเน้นตัวหนา serial
คอลัมน์ถูกนำไปใช้โดยnextval()
เรียงตามลำดับเป็นค่าเริ่มต้นของคอลัมน์และอ้างอิงคู่มือ :
สำหรับลำดับสิทธิ์นี้อนุญาตให้ใช้ฟังก์ชันcurrval
และnextval
ดังนั้นหากมีserial
คอลัมน์คุณจะต้องให้สิทธิ์USAGE
(หรือALL PRIVILEGES
) ในลำดับด้วย
GRANT USAGE ON ALL SEQUENCES IN SCHEMA foo TO mygrp;
หมายเหตุ: คอลัมน์ข้อมูลประจำตัวใน Postgres 10 ขึ้นไปใช้ลำดับโดยนัยที่ไม่ต้องการสิทธิ์เพิ่มเติม (พิจารณาอัปเกรดserial
คอลัมน์)
แล้ววัตถุใหม่ล่ะ?
คุณจะสนใจDEFAULT PRIVILEGES
ผู้ใช้หรือสคีมาด้วย :
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT ALL PRIVILEGES ON TABLES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo GRANT USAGE ON SEQUENCES TO staff;
ALTER DEFAULT PRIVILEGES IN SCHEMA foo REVOKE ...;
สิ่งนี้ตั้งค่าสิทธิพิเศษสำหรับอ็อบเจ็กต์ที่สร้างขึ้นในอนาคตโดยอัตโนมัติ แต่ไม่ใช่สำหรับอ็อบเจ็กต์ที่มีอยู่แล้ว
สิทธิพิเศษเริ่มต้นเพียงนำไปใช้กับวัตถุที่สร้างขึ้นโดยผู้ใช้เป้าหมาย ( FOR ROLE my_creating_role
) ALTER DEFAULT PRIVILEGES
หากข้อที่ถูกละไว้เป็นค่าเริ่มต้นให้กับผู้ใช้ในปัจจุบันการดำเนินการ เพื่อให้ชัดเจน:
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo GRANT ...;
ALTER DEFAULT PRIVILEGES FOR ROLE my_creating_role IN SCHEMA foo REVOKE ...;
โปรดสังเกตด้วยว่า pgAdmin III ทุกเวอร์ชันมีจุดบกพร่องเล็กน้อยและแสดงสิทธิ์เริ่มต้นในบานหน้าต่าง SQL แม้ว่าจะไม่ได้ใช้กับบทบาทปัจจุบันก็ตาม อย่าลืมปรับFOR ROLE
ประโยคด้วยตนเองเมื่อคัดลอกสคริปต์ SQL