openGuass——管理用户安全

news2024/9/20 22:47:05

一、默认权限机制

二、管理员

 1、核心管理员

 2、辅助管理员

三、三权分立

1、思想

2、实践

四、权限操作

1、用户的创建与删除

2、用户的修改与信息查看

五、角色

1、创建、修改和删除角色

六、GRANT

七、REVOKE

八、设置用户安全策略

自动锁定和解锁用户

手动锁定和解锁用户

设置帐号有效期

设置密码安全策略


一、默认权限机制

  • 对象创建者默认是该对象的所有者。
  • openGauss安装后的默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT命令将对象的权限授予其他用户。
  • openGauss支持以下的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、CONNECT、EXECUTE和USAGE。
  • 要撤消已经授予的权限,可以使用REVOKE命令。
  • 对象所有者的权限(例如ALTER、 DROP、GRANT和REVOKE)是隐式的,无法授予或撤消。但对象所有者可以撤消自己的普通权限,例如,使表对自己以及其他人只读。
  • 系统表和系统视图要么只对系统管理员可见,要么对所有用户可见。标识了需要系统管理员权限的系统表和视图只有系统管理员可以查询。

二、管理员

 1、核心管理员

数据库中默认的三个管理员及权限:

  •  系统管理员:具备SYSADMIN权限,默认安装情况下具有与对象所有者相同的权限,但不包括dbe_perf模式的对象权限
  •  安全管理员:具备SAFEADMIN权限。
  •  审计管理员:具备AUDITADMIN权限。

三个管理员并非唯一的,可以按需创建。以系统管理为例可以创建新的系统管理员,或将权限授予现有用户:

openGauss=# ALTER USER sysadmin SYSADMIN;

授予现有用户:

openGauss=# CREATE USER sysadmin WITH SYSADMIN password "xxxxxxxxx";

2、辅助管理员

数据库中默认的三个辅助管理员及权限:

  •  监控管理员:具备MONADMIN权限,具有查看dbe_perf模式下视图和函数的权限,亦可以对dbe_perf模式的对象权限进行授予或收回。
  • 运维管理员:具有OPRADMIN属性的用户。
  • 安全策略管理员是指具有POLADMIN属性的用户,具有创建资源标签、脱敏策略和统一审计策略的权限。

辅助管理员也并非唯一的,可以按需创建。以监控管理员为例可以创建新的监控管理员,或将权限授予现有用户:

openGauss=# CREATE USER monadmin WITH MONADMIN password "xxxxxxxxx";

授予现有用户

openGauss=# ALTER USER monadmin MONADMIN;

三、三权分立

1、思想

默认规则下系统管理员继承了初始用户绝大部分权限,拥有的权限过高。为了避免权限过于集中带来的风险,建议对安全有较高要求的用户开启三权分立,又叫三员分立:

减少系统管理员的权限
与安全管理员、安全审计员相互制约。
三员相互独立、配合管理。

2、实践

系统管理员取消CREATEROLE权限和AUDITADMIN权限
CREATEROLE授予安全管理员
AUDITADMIN授予审计管理员
开启三权分立:将参数enableSeparationOfDuty设置为on

  • 使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库。用户和角色在整个openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。
  • 非三权分立下,openGauss用户用户只能由系统管理员或拥有CREATEROLE属性的安全管理员创建和删除。三权分立时,用户用户只能由初始用户和安全管理员创建
  • 在用户登录openGauss时会对其进行身份验证。用户可以拥有数据库和数据库对象(例如表),并且可以向用户和角色授予对这些对象的权限以控制谁可以访问哪个对象。除系统管理员外,具有CREATEDB属性的用户可以创建数据库并授予对这些数据库的权限。

四、权限操作

1、用户的创建与删除

创建用户joe,并设置用户拥有CREATEDB属性

openGauss=# CREATE USER joe WITH CREATEDB PASSWORD "xxxxxxxxx";
CREATE ROLE

删除用户,同时会删除同名的schema。语法格式

DROP USER [ IF EXISTS ] user_name [, ...] [ CASCADE | RESTRICT ];

CASCADE:级联删除依赖用户的对象。
RESTRICT:如果用户还有任何依赖的对象,则拒绝删除该用户(缺省行为)

 

2、用户的修改与信息查看

修改角色的权限

ALTER USER user_name [ [ WITH ] option [ ... ] ];

修改用户名

ALTER USER user_name RENAME TO new_name;

修改与用户关联的指定会话参数值

ALTER USER user_name  SET configuration_parameter { { TO | = } { value | DEFAULT } | FROM CURRENT };

重置与用户关联的指定会话参数值

ALTER USER user_name RESET { configuration_parameter | ALL };

ALTER USER中修改的会话参数只针对指定的用户,且在下一次会话中有效。

要查看用户列表,请查询视图PG_USER:

openGauss=# SELECT * FROM pg_user; 

五、角色

        角色是一组用户的集合。通过GRANT把角色授予用户后,用户即具有了角色的所有权限。推荐使用角色进行高效权限分配。例如,可以为设计、开发和维护人员创建不同的角色,将角色GRANT给用户后,再向每个角色中的用户授予其工作所需数据的差异权限。在角色级别授予或撤消权限时,这些更改将作用到角色下的所有成员。
        openGauss提供了一个隐式定义的拥有所有角色的组PUBLIC,所有创建的用户和角色默认拥有PUBLIC所拥有的权限。关于PUBLIC默认拥有的权限请参考GRANT。要撤销或重新授予用户和角色对PUBLIC的权限,可通过在GRANT和REVOKE指定关键字PUBLIC实现。
        要查看所有角色,请查询系统表PG_ROLES:

openGauss=# SELECT * FROM PG_ROLES;

1、创建、修改和删除角色

        非三权分立时,只有系统管理员和具有CREATEROLE属性的用户才能创建、修改或删除角色。三权分立下,只有初始用户和具有CREATEROLE属性的用户才能创建、修改或删除角色。
        要创建角色,请使用CREATE ROLE。
        要在现有角色中添加或删除用户,请使用ALTER ROLE。
        要删除角色,请使用DROP ROLE。DROP ROLE只会删除角色,并不会删除角色中的成员用户用户。

六、GRANT

使用GRANT命令进行用户授权包括以下三种场景:

  •  将系统权限授权给角色或用户

        系统权限又称为用户属性,包括SYSADMIN、CREATEDB、CREATEROLE、AUDITADMIN和LOGIN。

  • 将数据库对象授权给角色或用户

        将数据库对象(表和视图、指定字段、数据库、函数、模式、表空间等)的相关权限授予特定角色或用户;

  • 将角色或用户的权限授权给其他角色或用户

        将一个角色或用户的权限授予一个或多个其他角色或用户。在这种情况下,每个角色或用户都可视为拥有一个或多个数据库权限的集合。

创建名为mvsuser的用户,并将sysadmin权限授权给他

openGauss=# CREATE USER mvsuser PASSWORD ’ password#123'; 
openGauss=# GRANT ALL PRIVILEGES TO mvsuser; 

授权成功后,用户mvsuseer会拥有sysadmin的所有权限。

七、REVOKE

REVOKE用于撤销一个或多个角色的权限。

非对象所有者试图在对象上REVOKE权限,命令按照以下规则执行:

  • 如果授权用户没有该对象上的权限,则命令立即失败。
  • 如果授权用户有部分权限,则只撤销那些有授权选项的权限。
  • 如果授权用户没有授权选项,REVOKE ALL PRIVILEGES形式将发出一个错误信息,而对于其他形式的命令而言,如果是命令中指定名称的权限没有相应的授权选项,该命令将发出一个警告。
  • 不允许对表分区进行REVOKE操作,对分区表进行REVOKE操作会引起告警。

八、设置用户安全策略

        openGauss为用户提供了自动锁定和解锁用户、手动锁定和解锁异常用户和删除不再使用的用户等一系列的安全措施,保证数据安全。

自动锁定和解锁用户

        为了保证用户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该用户,默认值5。次数设置越小越安全,但是在使用过程中会带来不便。
        当用户被锁定时间超过设定值(password_lock_time),则当前用户自动解锁,默认值为1天。时间设置越长越安全,但是在使用过程中会带来不便。

手动锁定和解锁用户

        若管理员发现某用户被盗、非法访问等异常情况,可手动锁定该用户。
当管理员认为用户恢复正常后,可手动解锁该用户。

设置帐号有效期

        创建新用户时,需要限制用户的操作期限(有效开始时间和有效结束时间)。
        不在有效操作期内的用户需要重新设定帐号的有效操作期。

设置密码安全策略

        用户密码存储在系统表pg_authid中,为防止用户密码泄露,openGauss对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。
        当参数password_encryption_type设置为0时,表示采用md5方式对密码加密。md5为不安全的加密算法,不建议使用。
        当参数password_encryption_type设置为1时,表示采用sha256和md5方式对密码加密,为默认配置。
        当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2075492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

输入与输出(12)

在 C 语言中,标准输入输出库(stdio.h)是用来处理输入和输出操作的主要工具。这个库提供了一系列功能强大的函数来读写各种数据类型,这对任何C程序都是至关重要的。下面是对 C 中输入和输出功能的更详细解释。 1.stdio.h 库 通过包…

9:00面试,9:05就出来了,问的问题有点出乎意料!

从小厂跳槽出来,本以为能在新公司大展拳脚,没想到没多久就再次遭遇困境。 入职初期,加班成了家常便饭,尽管如此,考虑到薪酬还算可观,我并没有过多抱怨。然而,到了六月,一纸通知打破…

第十二章、 集合

第十二章、 集合 12.1 集合的理解和好处 数组 (1). 长度开始时必须指定,而且一旦指定,不能修改 (2). 保存的必须为同一类型的元素 (3). 使用数组进行增加/删除元素的示意代码—比较…

力扣刷题(复习版)

文章目录 题目:最大重复子字符串题解 题目: 面试题 16.07. 最大数值题解 题目: 最大字符串配对数目题解 题目: 字符串中第二大的数字题解 总结 题目:最大重复子字符串 原题链接:最大重复子字符串 题解 …

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE

JetBrains RubyMine 2024.2 (macOS, Linux, Windows) - 最智能的 Ruby 与 Rails IDE JetBrains 跨平台开发者工具 请访问原文链接:https://sysin.org/blog/jetbrains-rubymine/,查看最新版。原创作品,转载请保留出处。 作者主页&#xff1…

等保测评中的安全测试方法

等保测评,即信息安全等级保护测评,是我国网络安全领域的重要评估机制,用于验证网络系统或应用是否满足相应的安全保护等级要求。在等保测评中,安全测试方法扮演着至关重要的角色。本文将详细介绍等保测评中常用的安全测试方法及其…

自定义@Resource注解功能

文章目录 1.目录2.Resource.java3.MonsterController.java 依赖注入Service调用方法4.SunWebApplicationContext.java1.executeResource方法完成依赖注入,先按照名字再按照类型2.init方法调用 5.测试 1.目录 2.Resource.java package com.sunxiansheng.springmvc.a…

Linux网络配置和系统管理

Linux网络配置和系统管理 1.查看网络IP和网关windows系统主机 IP虚拟机 IP虚拟机网关网络检测命令 ping网络连接模式 2.配置静态IP地址(NAT网络连接模式)前提说明配置主机的VMware Network Adapter VMnet8 网卡静态IP地址注意点虚拟机配置静态ip修改后ping命令测试修改虚拟机静…

选择泛域名证书还是多域名证书?

在选择泛域名SSL证书(也称为通配符SSL证书)和多域名证书时,需要综合考虑多个因素,包括业务需求、成本效益、灵活性以及未来规划等。以下是对这两种证书的比较及选择建议: 一、定义与特点 泛域名SSL证书(通…

智能巡检系统,确保到位管理,提升安全效率新境界

在现代工业生产与设施管理中,巡检作为确保设备安全、预防故障发生的重要环节,其效率与准确性直接关系到企业的运营安全与经济效益。然而,传统的人工巡检方式往往存在巡检周期长、覆盖面有限、数据记录易出错、隐患难以及时发现等痛点&#xf…

大模型分布式训练进阶之路:数据并行、管道并行、张量并行、3D并行

系统化的学习大模型,除了知道大模型是什么,也得知道大模型是如何训练的,对大模型的实际应用有更加定量的认知,该文章也算是一篇分布式训练的学习过程总结,作为循序渐进学习分布式训练的总结。 类似之前写过的LLM文章&…

U盘怎么加密保护?U盘加密软件哪个好?

在工作和生活中,我们经常需要使用U盘来存储数据。而为了避免U盘数据泄露,我们需要加密保护U盘。那么,U盘加密软件哪个好呢?下面我们就一起来了解一下。 BitLocker加密 BitLocker是Windows系统提供的磁盘加密功能,可以…

DevOps实现CI/CD实战(三)- 集成Sonar Qube

七、集成Sonar Qube 1. SonarQube介绍 Sonar Qube是一个开源的代码分析平台,支持Java、Python、PHP、JavaScript、CSS等25种以上的语言,可以检测出重复代码、代码漏洞、代码规范和安全性漏洞的问题。 Sonar Qube可以与多种软件整合进行代码扫描&#…

大龄程序员转行AI大模型:机遇与挑战解析

前言 对于大龄程序员而言,转行到AI大模型领域是一个既充满挑战又极具吸引力的选择。在这个领域,您将有机会接触到最新的技术趋势,参与到前沿的项目中,并且有可能获得更高的薪酬。下面是一些具体的步骤和建议,帮助您顺…

普通人用 AI 变现的4大方向

前言 AI出现,几家欢喜几家愁。 有人担心受怕恐因AI被裁,有人却早已利用AI躺赚💰。 “利用AI发展副业的方式究竟有哪些?怎么样才能利用AI做到躺赚?” 我相信这是绝大部分人的疑惑点,包括我!&…

【AI大模型】提示词(Prompt)全面解析

文章目录 前言前置准备(非常重要)一、Prompt 提示词介绍1.1 Prompt 的重要性 二、Prompt 提示词元素构成与实践2.1 关键字2.2 上下文2.3 格式要求2.4 实践示例 三、Prompt 提示词编写原理3.1 清晰性3.2 具体性3.3 适应性 四、Prompt 提示词编写常用的分隔…

LLaMA Factory微调Llama3模型

LLaMA Factory是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过Web UI界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架。 💥GPU推荐使用24GB显存的A10(ecs.gn7i-c8g1.2xlarg…

Stable Diffusion【XL Lora】效果太赞了!AI助力服装设计,让服装拆分设计就是这么高效

今天带了一款 非常适合服装设计的SD XL Lora模型——【服装拆分】绪儿 分类背景 XUER,该模型是由绪儿大佬炼制,非常适合饰品服装分类背景。绪儿大佬其实推出了很多非常棒的模型,比如之前非常受大家喜欢的敦煌飞天、超梦幻场景等模型。 那么我…

如何区分住宅代理与数据中心代理?

随着代理市场的蓬勃发展,不同类型的代理服务应运而生,其中住宅代理与数据中心代理尤为常见。如何区分住宅代理与数据中心代理,成为了诸多用户面临的难题,本文将与大家详细探讨如何区分这二种代理。 首先,我们来看住宅代…

【解压即玩】使命召唤 系列-2,回味经典

《使命召唤2》(英语:Call of Duty 2,香港和台湾译作“决胜时刻2”)于2005年推出,游戏提供了苏军、英军、美军三大阵营的战役,重现了二战中的经典战役,例如莫斯科保卫战、斯大林格勒保卫战、诺曼…