Postgresql

我可以授予插入視圖的權限,但不能授予引用的表嗎?

  • November 25, 2014

在這裡,我在公共模式中有一個視圖,指的是私有模式中的表:

CREATE OR REPLACE VIEW public.products AS 
SELECT products.id, products.product_id, products.title, products.company_id
  FROM private.products;

ALTER TABLE products
 OWNER TO postgres;
GRANT ALL ON TABLE public.products TO postgres;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE products TO viewers;


CREATE OR REPLACE RULE "_INSERT" AS
   ON INSERT TO products DO INSTEAD  INSERT INTO private.products (product_id, title, company_id) 
 VALUES (new.product_id, new.title, new.company_id);

整個事情都很好,但我希望客戶端只能在public模式中操作,而不能在private中操作。有沒有辦法設置這樣的權限?

是的你可以。根據文件:

請注意,對視圖執行插入、更新或刪除操作的使用者必須對視圖具有相應的插入、更新或刪除權限。此外,視圖的所有者必須對基礎基礎關係具有相關權限,但執行更新的使用者不需要基礎基礎關係的任何權限。

引用自:https://dba.stackexchange.com/questions/83636