openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

news2024/10/1 21:33:13

文章目录

    • openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户
      • 108.1 创建、修改和删除用户
      • 108.2 私有用户
      • 108.3 永久用户
      • 108.4 用户认证优先规则

openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库。用户和角色在整个openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。

三权分立下,openGauss用户帐户只能由系统管理员或拥有CREATEROLE属性的安全管理员创建和删除。三权分立时,用户帐户只能由初始用户和安全管理员创建。

在用户登录openGauss时会对其进行身份验证。用户可以拥有数据库和数据库对象(例如表),并且可以向用户和角色授予对这些对象的权限以控制谁可以访问哪个对象。除系统管理员外,具有CREATEDB属性的用户可以创建数据库并授予对这些数据库的权限。

108.1 创建、修改和删除用户

  • 要创建用户,请使用SQL语句CREATE USER。

    例如:创建用户joe,并设置用户拥有CREATEDB属性。

    openGauss=# CREATE USER joe WITH CREATEDB PASSWORD "xxxxxxxxx";
    CREATE ROLE
    
  • 要创建系统管理员,请使用带有SYSADMIN选项的CREATE USER语句 。

  • 要删除现有用户,请使用DROP USER。

  • 要更改用户帐户(例如,重命名用户或更改密码),请使用ALTER USER。

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

    SELECT * FROM pg_user; 
    
  • 要查看用户属性,请查询系统表PG_AUTHID:

    SELECT * FROM pg_authid; 
    

108.2 私有用户

对于有多个业务部门,各部门间使用不同的数据库用户进行业务操作,同时有一个同级的数据库维护部门使用数据库管理员进行维护操作的场景下,业务部门可能希望在未经授权的情况下,管理员用户只能对各部门的数据进行控制操作(DROP、ALTER、TRUNCATE),但是不能进行访问操作(INSERT、DELETE、UPDATE、SELECT、COPY)。即针对管理员用户,表对象的控制权和访问权要能够分离,提高普通用户数据安全性。

三权分立情况下,管理员对其他用户放在属于各自模式下的表无权限。但是,这种无权限包含了无控制权限,因此不能满足上面的诉求。为此,openGauss提供了私有用户方案。即在非三权分立模式下,创建具有INDEPENDENT属性的私有用户。

CREATE USER user_independent WITH INDEPENDENT IDENTIFIED BY "XXXXXXXX";

针对该用户的对象,系统管理员和拥有CREATEROLE属性的安全管理员在未经其授权前,只能进行控制操作(DROP、ALTER、TRUNCATE),无权进行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。

img 须知:

  • PG_STATISTIC系统表和PG_STATISTIC_EXT系统表存储了统计对象的一些敏感信息,如高频值MCV。进行三权分立后系统管理员仍可以通过访问这两张系统表,得到统计信息里的这些信息。
  • 在某些特殊场景下,系统无法保证私有用户数据对初始用户或系统管理员绝对不可见。例如,初始用户或系统管理员通过解析本地数据文件或通过构造特殊函数或操作符被私有用户调用等方式,可能会获取私有用户数据。私有用户如果希望进一步提升数据的安全性,建议对数据进行加密保护。

108.3 永久用户

openGauss提供永久用户方案,即创建具有PERSISTENCE属性的永久用户。

CREATE USER user_persistence WITH persistence IDENTIFIED BY "XXXXXXXX";

只允许初始用户创建、修改和删除具有PERSISTENCE属性的永久用户。

108.4 用户认证优先规则

对于GUC参数b_compatibility_user_host_auth打开的b数据库,如果用户连接,需要有优先匹配的规则,如下。

  • 含有具体的IP地址的用户优先级最高,比如user_name@127.0.0.1。
  • 含有’%'的user_name,按照%的出现顺序决定优先级,%越靠后优先级越高,比如user_name@127.%优先级高于user_name@127%。
  • 只含有user_name。比如user_name的优先级低于user_name@127%。
  • 只含有’%'优先级最低。可匹配所有用户

具体创建的用户名称详情见CREATE USER语句。

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230718181237113

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

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

相关文章

解决虚拟机联网问题

虚拟机开机后发现右上角缺少联网标志(下面有正常联网标志),这样就是连不上网的 不信你可以打开Ubuntu里面的浏览器或ping www.baidu.com 1.编辑虚拟机设置-->网络适配器-->如图所示 2.选择编辑-->虚拟网络编辑器 3.更改设置 4此处可以选择还原默认设置&am…

【JAVA学习笔记】42 - 内部类(难点,重点)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter10/src/com/yinhai/innerclass_ 一、基本介绍 一个类的内部又完整的嵌套了另一个类结构。被嵌套的类称为内部类(inner class),嵌套其他类的类称为外部类(outer class)。是我们类的第五大成…

【蓝桥每日一题]-动态规划 (保姆级教程 篇12)#照相排列

这次是动态规划最后一期了,感谢大家一直以来的观看,以后就进入新的篇章了 目录 题目:照相排列 思路: 题目:照相排列 思路: 首先记录状态f[a][b][c][d][e]表示每排如此人数下对应的方案数,然…

java中按行读取文件内容

java中按行来读取文件内容,一般对文件也是又要求的,比如文件编码utf-8,内容是按行可读,而不是一堆字节码。这类文件,我们按行读取,主要是方便快速查看内容,并且用这些内容来作别的用途&#xff…

FileUpload控件上传文件时出现 不支持给定路径的格式.的解决方法

正常代码,部署到server 2012时,在上传音频mp3文件时,显示错误“不支持给定路径的格式”,上传控件使用FileUpload控件: 因为程序之前是正常的,因此应该不是程序的问题。 上传时,发现在选择文件时…

F28335-可移植新建工程模板-基于bitfield

文章目录 前言步骤新建工程工程管理拷贝底层文件 添加测试函数编写main.c测试函数 前言 实验要求利用28335芯片,重新学习一下DSP28335,并做个记录。 值得一提的是,28335只能用寄存器开发,而不能用库函数开发,相应的也…

LDAP注入漏洞

1、LDAP 注入 LDAP (Light Directory Access Portocol) 是基于X.500标准的轻量级目录访问协议,提供访问目录数据库方法的服务和协议,常用于与目录数据库组成目录服务。其中目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结…

Java学习 1.初识Java

1.类名 当这个类被public修饰时 class后的名字 类名必须和文件名相同 public class 类名(文件名); 2.main函数 方法一定是包含在类之中的 3.类里面是函数/方法 由返回值、方法名、参数列表组合而成,方法中可以定义变量,方法体 4.一个文件中可以有多个类 我们建…

【管理运筹学】第 10 章 | 排队论(3,标准的 M/M/1 排队系统)

文章目录 引言一、模型特征及分析二、系统指标1. 在系统中的平均顾客数(队长的期望)2. 在队列中的平均顾客数(队列长的期望)3. 在系统中顾客平均逗留时间4. 在队列中顾客的平均等待时间 写在最后 引言 前两篇文章,分别…

李沐——论文阅读——VIT(VIsionTransformer)

一、终极结论: 如果在足够多的数据上面去做预训练,那么,我们也可以不用 卷积神经网络,而是直接用 自然语言处理那边搬过来的 Transformer,也能够把视觉问题解决的很好 (tips:paperswithcode.co…

【刷题-PTA】堆栈模拟队列(代码+动态图解)

【刷题-PTA】堆栈模拟队列(代码动态图解) 文章目录 【刷题-PTA】堆栈模拟队列(代码动态图解)题目输入格式:输出格式:输入样例:输出样例: 分析题目区分两栈解题思路伪代码动图演示代码测试 题目 题目描述 : 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 …

新华三路由器+华为交换机,实现华为交换机指定端口访问外网

需求背景: 多台服务器使用华为交换机组建了局域网,需要让交换机的指定端口可以访问外网。 需求分析: 交换机组建的局域网是二层组网,需借助路由器接入外网,然后通过DHCP分配内网IP地址给交换机指定端口连接的设备。 …

[资源推荐] 关于计算机毕设的方法论(重庆大学吕昱峰)

第一次刷到这个up主的视频是之前搜cpu设计的时候 视频链接:https://www.bilibili.com/video/BV1j7411P7gt?p1&vd_source0e8431ba6fd78bb2215c36307a75ac1a 最近学校毕设要开题了,但是感觉对毕业设计这个东西还是比较模糊,应该做到什么…

QML自定义电池状进度条

效果: 百分比显示保留两位小数,通过iValue的数值来显示当前进度,注意为了保留小数总值取的是10000,所以你的iValue值也要乘上100 变量说明: cBorderColor:进度条外框的颜色 cContentColor:表示进度的小方块颜色 cTextColor:显示进度百分比的文字颜色 iValue:当前进度,为整数(…

低代码软件的价格考量:成本效益与投资回报

数字化转型的今天,我们常听到“低代码”这个概念,那低代码软件价格到底如何呢?很多厂商并没有公布软件价格情况,让很多企业在采购的时候也是一头雾水。当然,市场上也存在一些厂商公开透明价格,比如Zoho Cre…

皮卡丘靶场——暴力破解

暴力破解 1. 基于表单的暴力破解 在登陆界面随便使用账号密码进行登录,使用bp抓包发送Intruder 我们需要破解账号(username)和密码(password),就应当选择ClusterBomb(集束炸弹)的攻击…

Java基础篇 | Java8流式编程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏&#xf…

pytorch_lightning:Validation sanity check: 0%| | 0/2 [00:00<?, ?it/s]

在使用Lighting架构辅助训练时,对于出现的下述情况的原因: 解释: 注意到“ Validation sanity check ”。这是因为Lightning在开始训练之前进行了两批验证。这是一种单元测试,以确保如果你在验证循环中有一个bug,你不…

微信小程序开发之投票管理及小程序UI的使用

目录 一、小程序UI 1.讲述 2. 介绍vantWeapp 3. 使用vantWeapp 安装 构建 依赖 引用 二、后端 1. 后端实体对象 2. 后端接口 3. 实现类 4. 请求处理类 三、前端 1. 定义路径 2. 页面引用 3. 页面 4. 页面美化 5. 数据 6. 效果展示 一、小程序UI 1.讲述 小…

IMU预积分的过程详解

一、IMU和相机数据融合保证位姿的有效性: 当运动过快时,相机会出现运动模糊,或者两帧之间重叠区域太少以至于无法进行特征匹配,所以纯视觉SLAM对快速的运动很敏感。而有了IMU,即使在相机数据无效的那段时间内&#xff…