我的任务是在一台虚拟机上托管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,秒和教授的用户仍然都能够创建表和下降他们。
是否有可能知道如何防止他们这样做,并且如果可能,将来会阻止新创建的用户拥有这些权限/特权?
预先感谢您
了解,非常感谢! –