我的任務是在一臺虛擬機上託管HTML &網站的PHP文件,並在另一臺虛擬機上設置Postgresql數據庫。如何授予和撤銷Postgresql用戶的特定權限?
我最近安裝了Postgresql,並且一直在使用官方的Postgresql文檔來學習如何創建數據庫,創建用戶並授予撤銷權限&。
在已經創建了一個名爲mfc_dst數據庫,我奉命創建4級型動物的用戶,這是我有一個問題:
-The第一用戶已被命名爲管理員,必須只有其他用戶比預先存在的用戶名爲postgres有無限的權利。
-The第二(名爲CFC)和第三用戶(名爲秒)必須僅具有SELECT上mfc_dst數據庫的所有表和UPDATE特權。
- 和第四/最後一個用戶(名爲教授)必須只能在來自名爲mfc_dst數據庫查看命名表本分。
要做到這一點,我用2個不同的腳本:
CREATEandGRANT.sql
REVOKE ALL ON ALL TABLES IN SCHEMA public TO cfc;
REVOKE ALL ON ALL TABLES IN SCHEMA public TO sec;
REVOKE ALL ON ALL TABLES IN SCHEMA public TO prof;
GRANT CONNECT ON DATABASE mfc_dst TO admin;
GRANT CONNECT ON DATABASE mfc_dst TO cfc;
GRANT CONNECT ON DATABASE mfc_dst TO sec;
GRANT CONNECT ON DATABASE mfc_dst TO prof;
GRANT SELECT,UPDATE
ON ALL TABLES IN SCHEMA public
TO cfc;
GRANT SELECT,UPDATE
ON ALL TABLES IN SCHEMA public
TO sec;
GRANT SELECT ON devoir TO prof;
,這等一個:
REVOKE.sql
REVOKE ALL ON TABLE professeur FROM PUBLIC;
REVOKE ALL ON TABLE reserver FROM PUBLIC;
REVOKE ALL ON TABLE salle FROM PUBLIC;
REVOKE ALL ON TABLE semaine FROM PUBLIC;
REVOKE ALL ON TABLE surveiller FROM PUBLIC;
由於這2個腳本,我能夠防止評爲教授的用戶看到其他表,但我的問題是,名爲cfc,秒和教授的用戶仍然都能夠創建表和下降他們。
是否有可能知道如何防止他們這樣做,並且如果可能,將來會阻止新創建的用戶擁有這些權限/特權?
預先感謝您
瞭解,非常感謝! –