【PG】PostgresSQL角色管理

2023-10-25 14:30
文章标签 管理 角色 pg postgressql

本文主要是介绍【PG】PostgresSQL角色管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

角色概念

查询现有角色

列出当前角色 

创建角色

删除角色

更改角色 

创建角色举例

预定义角色

角色属性

登陆角色

超级用户角色

创建数据库角色

创建role角色

复制角色

创建带有密码的角色

角色成员关系

角色组概念

角色组增加成员

角色组移除成员

删除角色

默认角色


角色概念

PostgreSQL使用角色的概念管理数据库访问权限。一个角色可以被看成是一个数据库用户或者是一个数据库用户组,这取决于角色被怎样设置。角色可以拥有数据库对象(例如,表和函数)并且能够把那些对象上的权限赋予给其他角色来控制谁能访问哪些对象。此外,还可以把一个角色中的成员资格授予给另一个角色,这样允许成员角色使用被赋予给另一个角色的权限。

角色的概念把“用户”和“组”的概念都包括在内。在PostgreSQL版本 8.1 之前,用户和组是完全不同的两种实体,但是现在只有角色。任意角色都可以扮演用户、组或者两者

 重点:角色 == 用户 或 角色 == 用户组

查询现有角色

 select rolname from pg_roles;

列出当前角色 

\du

创建角色

create role name login;

等同于

create user name;

删除角色

drop role name;

等同于

drop user name;

更改角色 

ALTER ROLE — 更改一个数据库角色;

alter role role3 login;

创建角色举例

只有登录权限的角色

create role onlylogin LOGIN;

具有创建数据库 创建角色 登录的角色

 create user admin with CREATEDB CREATEROLE;

创建一个带有密码 并且 密码有效期截止到2025-01-01的角色

CREATE ROLE testlogin WITH LOGIN PASSWORD 'jw8s0F4' VALID UNTIL '2025-01-01';

预定义角色

为了引导数据库系统,一个刚刚被初始化好的系统总是包含一个预定义角色。这个角色总是一个“superuser”,并且默认情况下(除非在运行initdb时修改)它的名字和初始化数据库集簇的操作系统用户相同。习惯上,这个角色将被命名为postgres。为了创建更多角色,你首先必须以初始角色的身份连接。

重点:超级用户和初始化数据库的操作系统用户名称相同,一般是postgres。

角色属性

登陆角色

CREATE ROLE name LOGIN;
等同于
CREATE USER name;

CREATE USERCREATE ROLE等效,除了CREATE USER默认带有LOGIN,而CREATE ROLE创建的角色不带有LOGIN

超级用户角色

一个数据库超级用户会绕开所有权限检查。这是一个危险的权限并且应该小心使用,最好用一个不是超级用户的角色来完成你的大部分工作,创建该角色的用户必须是一个超级用户。

CREATE ROLE name SUPERUSER

创建数据库角色

一个角色必须被显式给予创建数据库的权限才能创建数据库

CREATE ROLE name CREATEDB;

创建role角色

一个角色必须被显式给予权限才能创建更多角色(除了超级用户,因为它们会绕开所有权限检查)。一个带有CREATEROLE权限的角色也可以修改和删除其他角色,还可以授予或回收角色中的成员关系。然而,要创建、修改、删除或修改一个超级用户角色的成员关系,需要以超级用户的身份操作。CREATEROLE不足以完成这一切

CREATE ROLE name CREATEROLE

复制角色

一个角色必须被显式给予权限才能发起流复制(除了超级用户,因为它们会绕开所有权限检查)。一个被用于流复制的角色必须也具有LOGIN权限。

CREATE ROLE name REPLICATION LOGIN

创建带有密码的角色

CREATE ROLE name PASSWORD 'string';

角色成员关系

角色组概念

把用户分组在一起来管理权限常常很方便:那样,权限可以被授予一整个组或从一整个组回收。在PostgreSQL中通过创建一个表示组的角色来实现,并且然后将在该组角色中的成员关系授予给单独的用户角色。

创建角色组和创建角色相同

CREATE ROLE name;

角色组增加成员

向角色组 group_role 中增加曾院 role1 ;role1 和 group_role组具有相同角色

GRANT group_role TO role1, ... ;

角色组移除成员

REVOKE group_role FROM role1, ... ;

删除角色

默认角色

角色允许的访问
pg_read_all_settings读取所有配置变量,甚至是那些通常只对超级用户可见的变量。
pg_read_all_stats读取所有的pg_stat_*视图并且使用与扩展相关的各种统计信息,甚至是那些通常只对超级用户可见的信息。
pg_stat_scan_tables执行可能会在表上取得ACCESS SHARE锁的监控函数(可能会持锁很长时间)。
pg_monitor读取/执行各种不同的监控视图和函数。 这角色是pg_read_all_settingspg_read_all_statspg_stat_scan_tables的成员。
pg_signal_backend发信号到其他后端以取消查询或中止它的会话。
pg_read_server_files允许使用COPY以及其他文件访问函数从服务器上该数据库可访问的任意位置读取文件。
pg_write_server_files允许使用COPY以及其他文件访问函数在服务器上该数据库可访问的任意位置中写入文件。
pg_execute_server_program允许用运行该数据库的用户执行数据库服务器上的程序来配合COPY和其他允许执行服务器端程序的函数。

参考 

ALTER ROLE

这篇关于【PG】PostgresSQL角色管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/283188

相关文章

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Sentinel 高可用流量管理框架

Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 Sentinel 具有以下特性: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应