首页 帮助中心 新加坡服务器 PostgreSQL 的public权限管理意义和注意事项
PostgreSQL 的public权限管理意义和注意事项
时间 : 2024-10-11 11:23:16 编辑 : 华纳云 阅读量 : 115

PostgreSQL的public模式属于默认模式,每个数据库都会自动创建这个模式。管理public模式的权限很关键,会影响到数据库的安全性和数据控制访问,华纳云总结了关于public权限管理的意义和注意事项分享给大家。

public属于PostgreSQL的默认模式,所有新创建的表、视图和其他对象,如果无指定模式名,都将防止在public模式下。默认情况下,所有用户都可访问public模式的对象,对于开发和测试环境都很方便,但是在生产环境中可能带来安全风险。

关于public的权限控制,可以通过管理public模式的权限,可以控制哪些用户在数据库中创建对象或访问现有对象。可以防止没有权限的用户对public模式的数据进行读写操作,保护了数据的安全。

使用public要注意一些原则如:

最小权限原则。遵循最小权限原则是确保只有必要用户具备创建/修改public模式中数据权限,如普通用户只有select权限,而没有INSERT、UPDATE 或 DELETE 权限。

修改默认权限原则。修改默认权限可以限制public模式的访问,默认情况下,public模式对所有用户开放,但是在生产环境中需要调整。

REVOKE ALL ON SCHEMA public FROM PUBLIC;

GRANT USAGE ON SCHEMA public TO specific_user;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO specific_user;

创建自定义模式。如果是需要更细致的权限控制也可以自定义模式,而不是把所有对象都放public模式下,自定义模式可灵活分配权限,控制哪些用户可访问哪些特定数据和功能。

CREATE SCHEMA custom_schema;

GRANT ALL ON SCHEMA custom_schema TO specific_user;

管理角色和组。使用角色和组可简化权限管理,创建不同角色把用户分配到这些角色中。给角色分配对应权限,而不是直接设置权限。

CREATE ROLE read_only_user;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only_user;

ALTER ROLE specific_user WITH IN ROLE read_only_user;

定期审计权限。定期检查和审计public模式及其他模式权限,确保符合预期的安全策略。可以移除不需要的权限,避免更多安全漏洞。

避免使用超级用户角色。尽量不用超级用户角色来进行日常操作,特别是在生产环境中。使用最小权限角色来操作,这样能很大程度降低因为权限多导致的风险。

应用和管理public模式的权限,实际应用示例:

-- 1. 撤销 public 模式的默认权限

REVOKE ALL ON SCHEMA public FROM PUBLIC;

 

-- 2. 授予特定用户使用 public 模式的权限

GRANT USAGE ON SCHEMA public TO specific_user;

 

-- 3. 授予特定用户对 public 模式中所有表的 SELECT 权限

GRANT SELECT ON ALL TABLES IN SCHEMA public TO specific_user;

 

-- 4. 创建自定义模式并授予特定用户权限

CREATE SCHEMA custom_schema;

GRANT ALL ON SCHEMA custom_schema TO specific_user;

 

-- 5. 创建角色并分配权限

CREATE ROLE read_only_user;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only_user;

 

-- 6. 将用户分配到角色中

ALTER ROLE specific_user WITH IN ROLE read_only_user;

管理PostgreSQL 中 public 模式的权限可以确保数据库的安全的关键步骤,通过遵循最小权限原则,修改默认权限,创建自定义模式,使用角色和组,定期审计权限和避免使用超级用户角色等,都可以有效的控制对数据库对象的访问。保护数据安全,增强整体系统的可靠性。

华纳云 推荐文章
如何在PHP Manager切换php版本的详细步骤 新加坡服务器有效故障自测方法汇总 Windows系统服务器分盘的操作方法 Linux实例中数据恢复详细指南 判断Windows服务器内部系统是否损坏方法及如何解决 服务器日志分析工具有哪些及具体使用方法 Linux中Linfo的安装和使用完整教程 如何理解类数据共享及类数据共享如何改变JVM的启动时间 SpringBoot中rabbitMq设置不自动检查连接 如何在Windows Server 2019实现IIS配置伪静态支持?
客服咨询
7*24小时技术支持
技术支持
渠道支持