Postgresql
我可以授予插入視圖的權限,但不能授予引用的表嗎?
在這裡,我在公共模式中有一個視圖,指的是私有模式中的表:
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中操作。有沒有辦法設置這樣的權限?
是的你可以。根據文件:
請注意,對視圖執行插入、更新或刪除操作的使用者必須對視圖具有相應的插入、更新或刪除權限。此外,視圖的所有者必須對基礎基礎關係具有相關權限,但執行更新的使用者不需要基礎基礎關係的任何權限。