当前位置: 首页 > article >正文

PostgreSQL11 | PostgreSQL用户管理(上篇)

本文章代码已在pgsql11.22版本上运行且通过,展示页由pgAdmin7.8版本提供


文章目录

    • @[toc]
    • 组角色管理
      • 创建组角色
        • 使用pgadmin创建组角色
        • 使用SQL语句创建角色
      • 查看和修改组角色
        • 使用pgadmin查看和修改组角色
        • 使用sql语句来修改组角色
      • 删除组角色
        • 使用pgadmin删除组角色
        • 使用sql语句删除组角色
    • 角色的各种权限
      • LOGIN(登录)
      • SUPERUSER(超级用户)
      • CREATEDB(创建数据库)
      • CREATEROLE(创建角色)
      • 口令

组角色管理

在pgsql11中,使用组角色的概念管理数据库访问权限。


创建组角色

一个组角色可以看作一组数据库用户,可以把元用户划分为一组管理,为这一组用户统一赋予权限,创建组角色的常见方法有两种:

  • pgAdmin可视化操作(推荐)
  • SQL语句创建
使用pgadmin创建组角色

请添加图片描述

名称是必填的

请添加图片描述

选择【定义】选项卡,输入组角色的密码和连接数限制

请添加图片描述

【权限】选项卡可以设置组角色属性

请添加图片描述

【从属关系】选项卡可以选择一个用户纳入此组角色

请添加图片描述

点击【保存】后,post1已存在

请添加图片描述

使用SQL语句创建角色

创建一个角色组的SQL格式

create ROLE 组角色名称;

创建一个名为post2的组角色

随便通过一个数据库打开查询工具,并创建一个组角色post2

create role post2;

查看和修改组角色

使用pgadmin查看和修改组角色

<右键>post2,点击【属性】

请添加图片描述

可以看到组角色post2的属性内容

请添加图片描述

使用sql语句来修改组角色

角色存在于pg_roles系统表中,用户可以通过此表来修改系统中的角色

select rolname from pg_roles;

请添加图片描述

修改组角色名称的格式为:

alter role 组角色旧名称 rename to 新名称;

修改组角色post1的名称为post3

alter role post1 rename to post3;

查看左侧列表前先刷新一下

请添加图片描述


删除组角色

使用pgadmin删除组角色

请添加图片描述
请添加图片描述

对组角色右键中选择【删除】,然后确定就行了

使用sql语句删除组角色

语法如下:

DROP ROLE 组角色名称;

删除角色post3

DROP ROLE post3;

请添加图片描述


角色的各种权限

一个数据库角色可以有一系列属性,用于定义他的权限以及与客户认证系统的交互,常见的权限如下:

  • LOGIN(登录)
  • SUPERUSER(超级用户)
  • CREATEDB(创建数据库)
  • CREATEROLE(创建角色)
  • 口令

LOGIN(登录)

默认情况下,创建的组角色没有登陆权限,只有具有LOGIN权限的组角色才可以用作数据库连接的初始角色,语法如下:

CREATE ROLE name LOGIN;

例如,创建一个具有登录权限的角色post4

CREATE ROLE post4 LOGIN;

SUPERUSER(超级用户)

超级用户有对数据库操作的最高权限,可以完成对数据库的所有权限检查。保证PostgreSql的安全非常重要,所以建议用户谨慎使用SUPERUSER(超级用户),不要轻易创建超级用户,最好使用非超级用户完成用户的大多数工作

创建超级用户,语法如下:

CREATE ROLE name SUPERUSER;

例如,创建超级用户post5

CREATE ROLE post5 SUPERUSER;

CREATEDB(创建数据库)

想要创建数据库,必须要明确给出该权限(除超级用户),语法如下:

CREATE ROLE name CREATEDB;

例如,创建一个具有创建数据库权限的角色post6

CREATE ROLE post6 CREATEDB;

CREATEROLE(创建角色)

角色想要创建角色,必须明确给出该权限(除超级用户),只能对普通角色进行操作,想操作超级用户,必须拥有超级权限,语法如下:

CREATE ROLE name CREATEROLE;

例如,创建一个具有创建角色权限的角色post7

CREATE ROLE post7 CREATEROLE;

口令

在客户认证方法要求与数据库建立连接时,需要口令权限,常见认证方法包括passwordmd5crypt,语法如下:

CREATE ROLE name 【口令认证方法】 【具体口令】;

例如,创建一个password口令为123456的角色post8

CREATE ROLE post8 PASSWORD '123456';

✏本教程使用md文档制作

📎本文根据原书《PostgreSql11 从入门到精通》(清华大学出版社)第13章总结整理,为提问与解答可以帮助更多人,本博客模拟GitHub的issue方案,所以私信已关,有问题请在评论区直接指正与提问,允许转发、复制或引用本文章,必须遵守开源法则注释来源与作者,感谢您的阅读


http://www.kler.cn/a/378969.html

相关文章:

  • 【Grafana】Grafana 基础入门
  • 学习虚幻C++开发日志——定时器
  • 什么是 OpenTelemetry?
  • 每周算法比赛
  • android14修改默认锁屏方式为无
  • Go 语言之搭建通用 Web 项目开发脚手架
  • 构建工具-webpack和vite笔记
  • 无桥图腾柱PFC原理及MATLAB仿真
  • M3U8直播,视频切片 AES加密,多码流自适应
  • npm run dev 报错PS ‘vite‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  • 中国平安蝉联福布斯“2024全球最佳雇主“,位居中国金融业第二
  • stm32cubeIde 使用笔记
  • php内置服务停止shell小工具,用来停止指定的端口的php内置服务进程
  • 2、课程大纲、学习方法
  • 【MySQL】 运维篇—备份与恢复:使用MySQL Replication进行数据冗余与高可用性
  • Solana链上的Pump狙击机器人与跟单机器人的工作原理及盈利模式
  • 校园网连接上却无法访问解决方案
  • 力扣题目解析--整数反转
  • Docker部署SQLServer教程(配置持久化)
  • PCD可视化(C++)
  • 一个git相关的cve:CVE-2024-32002
  • Android Studio插件版本与Gradle 版本对应关系
  • sql注入——靶场Less1
  • 请以鸿蒙生态崛起,开发者有哪些机遇与挑战
  • 探索PickleDB:Python中的轻量级数据存储利器
  • Rust 力扣 - 1984. 学生分数的最小差值