PostgreSQL基本操作总结
安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库,本文主要介绍用户权限和数据库的基本操作
1. 用户权限
PostgreSQL数据库使用角色的概念管理数据库权限访问,把一系列的数据库权限赋予给一个角色,同时把角色赋予给相应的用户,在PostgreSQL数据库中,角色与用户是没有区别,一个用户也就是一个角色
创建用户
CREATE USER name [ [ WITH ] option [ ... ] ]
创建角色
CREATE ROLE name [ [ WITH ] option [ ... ] ]
两则的区别是CREATE USER默认创建的用户有LOGIN权限,CREATE ROLE创建的用户没有LOGIN权限
option常用的选项如下所示:

详细解释如下:
| 参数 | 说明 |
|---|---|
| SUPERUSER | NOSUPERUSER |
| CREATEDB | NOCREATEDB |
| CREATEROLE | NOCREATEROLE |
| INHERIT | NOINHERIT |
| LOGIN | NOLOGIN |
| REPLICATION | NOREPLICATION |
| BYPASSRLS | NOBYPASSRLS |
| CONNECTION LIMIT connlimit | 表示该用户可以使用的并发连接数没有限制,默认-1 |
| [ ENCRYPTED ] PASSWORD ‘password’ | PASSWORD NULL |
| VALID UNTIL ‘timestamp’ | 密码失效时间,不指定表示永不过期 |
| IN ROLE role_name [, …] | 表示用户成为哪些角色的成员 |
| IN GROUP role_name [, …] | 表示用户成为哪些角色的成员 |
| ROLE role_name [, …] | 表示role_name 成为新建角色的成员 |
| ADMIN role_name [, …] | 表示role_name 将有这个新建角色的WITH ADMIN OPTION权限 |
| USER role_name [, …] | 表示role_name 成为新建用户的成员 |
| SYSID uid | 表示SQL向下兼容,无实际用处 |
用户的权限分为两类,一类是在创建用户时指定的权限,可以使用ALTER ROLE命令修改
另一类是由GRANT命令和REVOKE命令管理
- 在数据库中创建模式(SCHEMA)
- 在指定的数据库中创建临时表
- 连接某个数据库
- 在模式中创建数据库对象,如创建表、视图、函数
- 在表中做SELECT、UPDATE、INSERT、DELETE等操作
- 对序列进行查询、使用和更新
- 在声明中创建触发器
- 把表、索引建到指定表空间
GRANT和REVOKE两个命令的作用,一是让某个用户成为某个角色的成员从而使其拥有角色的权限(GRANT),或把某个角色的权限收回(REVOTE),二是把某些数据库逻辑结构对象的操作权限赋予某个用户(或角色)或收回
语法格式如下:
GRANT some_privileges ON database_object_type object_name TO role_name;
REVOKE some_privileges ON database_object_type object_name FROM role_name;
role_name:具体的用户名或角色名
some_privileges:表示该数据库对象的权限,如SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、CREATE、ALL PRIVILEGES
database_object_type:数据库对象类型,如TABLE、SEQUENCE、SCHEMA
2. 数据库操作
创建数据库的语法如下:

参数说明:
| 参数 | 说明 |
|---|---|
| OWNER [=] user_name | 指定新建的数据库属于哪个用户,默认属于当前执行命令的用户 |
| TEMPLATE [=] template | 模板名(从哪个模板创建新数据库),默认使用template1 |
| ENCODING [=] encoding | 创建新数据库使用的字符编码 |
| TABLESPACE [=] tablespace_name | 指定和新数据库关联的表空间名称 |
| CONNECTION LIMIT [=] connlimit | 指定数据库可以接受多少并发连接,默认-1,表示没有限制 |
| 示例如下: |
create database yu_commerce with owner xxx template=template0 encoding 'UTF-8';

修改数据库的语法如下:

删除数据库语法如下:

注意:如果有用户连接在这个数据库上,将无法删除该数据库
相关文章:
PostgreSQL基本操作总结
安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库,本文主要介绍用户权限和…...
Jakarta 的 Servlet 下BeanUtils的日期处理 和JSTL 的使用
jsp优于性能等问题已经不被spring boot等支持,如果想使用jsp和jstl标签库需要引入一下依赖。 <!-- 用jakarta.servlet.jsp.jstl,用org.glassfish.web--><dependency><groupId>jakarta.servlet.jsp.jstl</groupId><art…...
聚焦电力行业CentOS迁移,麒麟信安受邀参加第六届电力信息通信新技术大会暨数字化发展论坛并发表主题演讲
为加快推进“双碳”目标下的新型能源体系和新型电力系统建设,深化新一代数字技术与电力业务的融合发展,促进电力行业关键技术自主创新、安全可控,助力电力企业数字化转型升级和高质量发展,2023年8月9-11日,第六届电力信…...
华为OD真题--分月饼--带答案
1. 华为OD机考题 答案 2023华为OD统一考试(AB卷)题库清单-带答案(持续更新) 2023年华为OD真题机考题库大全-带答案(持续更新) 2. 面试题 一手真实java面试题:2023年各大公司java面试真题汇总--…...
帆软大屏2.0企业制作
 数字化观点中心 / 当前页 如何从0-1制作数据大屏,我用大白话给你解释清楚了 文 | 商业智能BI相关文章 阅读次数:18,192 次浏览 2023-06-08 11:51:49 好莱坞大片《摩天营救》中有这么一个场景:  你可以看见反派大b…...
【学习笔记之opcua】使用Python获取opcua数据
Python与OPC UA的应用 示例代码 将代码放入spyder中运行后,出现下面这个错误 没有‘opcua’,那我们就下载pip install opcua 之后出现下面这个错误 问问题大不,安装语句写错了 正经安装语句是 !pip install opcua 读取opcua协议数据测试 …...
apache doris和StarRocks的区别
记录一下最新要用到2个新数据库的区别 Apache Doris是一个分布式的列式存储系统,它的设计目标是提供大规模数据处理的可靠性和高性能。Doris采用了集群方式,通过将数据分布在多个机器上进行处理来提高性能,并提供了SQL查询接口方便用户使用。…...
文心一言最新重磅发布!
8月16日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT深度学习开发者大会2023举办。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰以《大语言模型为通用人工智能带来曙光》为题,阐述了大语言模型具备理解、生成、逻辑、记忆…...
css整体使用
文章目录 html与csshtml、css与排版响应式与自适应布局自适应布局响应式布局 css规则class、id、以及默认的标签名的优先级 css书写位置flex整体逻辑 bootstrap资源 html与css html负责网页功能,css负责网页美化;浏览器本身有一套默认的css样式…...
LeetCode1578. 使绳子变成彩色的最短时间
思路 拆除成本 全部拆除 - 最大的不拆除在统计成本的同时,维持一个成本的最大值 代码 class Solution {public int minCost(String colors, int[] neededTime) {int res 0;int i 0;int len colors.length();while (i < len) {int max -1;int sum 0;char…...
如何在机器学习中实现分类?
机器学习和统计学中的分类是一种监督学习方法,其中计算机程序从给定的数据中学习并进行新的观察或分类。在本文中,我们将详细了解机器学习中的分类。 本博客涵盖以下主题: 目录 什么是机器学习中的分类? 机器学习中的分类术语 分类算法...
华为网络篇 RIP的负载均衡-29
难度2复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 RIP是使用跳数(经过路由的数量)作为metric值的,当网络上存在去往目标的路由有两条以上都是相同metric时,就出现了流量负载均衡。…...
前端面试的性能优化部分(10)每天10个小知识点
目录 系列文章目录前端面试的性能优化部分(1)每天10个小知识点前端面试的性能优化部分(2)每天10个小知识点前端面试的性能优化部分(3)每天10个小知识点前端面试的性能优化部分(4)每天…...
分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测
分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测 目录 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 分类预测 | MATLAB实现S4VM半监督支持向量机二分类预测 程序设计 完整源码和数据获取方式: …...
maven -pl -am -amd
maven常见命令之 -pl -am -amd 昨天maven的deploy任务需要只选择单个模块并且把它依赖的模块一起打包,第一时间便想到了-pl参数,然后就开始处理,但是因为之前只看了一下命令的介绍,竟然花了近半小时才完全跑通,故记录…...
高效解决Anaconda Prompt报错Did not find VSINSTALLDIR这类问题
文章目录 回忆问题解决问题step1step2 回忆问题 类似于划红线部分然后还有很多行的报错信息,最后一行肯定是红色划线部分 解决问题 step1 找到 D:\Anaconda\envs\pytorch\etc\conda\activate.d在这个文件夹内会有两个文件,删除 vs2017_compiler_v…...
将iPhone备份到移动硬盘
文章目录 将iPhone备份到移动硬盘如何在 MacOS 上查找当前备份如何在 MacOS 上查找当前备份如何将 iPhone 备份移至外部硬盘如何永久更改 Mac系统 保存 iPhone 备份的位置更新 Mac 上的权限更改 iPhone 备份位置如何验证新的 iPhone 备份已经生效?将iPhone备份到移动硬盘 如果…...
找工作 相关资料
1、简历准备 一份近乎完美的计算机简历应该如何写以及如何修改?-知乎 2.1 机械面试可能的问题 2.1.1 技术邻上的 机械专业面试31问 2.1.2 B站上的 B站: “经常作为面试题,50个机械设计基础常识,你掌握了几个?”文…...
罗勇军 → 《算法竞赛·快冲300题》每日一题:“排列变换” ← 贪心算法
【题目来源】http://oj.ecustacm.cn/problem.php?id1812http://oj.ecustacm.cn/viewnews.php?id1023【题目描述】 给定一个长度为 n 的排列 a,需要将这个排列变成 b。 每次可以选择一个数字往左移若干个位置。 请求出最小需要移动的元素个数。【输入格式】 第一行…...
算法修炼Day51|● 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费
LeetCode:309.最佳买卖股票时机含冷冻期 309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode) 1.思路 初始化dp[i][j]数组,表示第i天的最大利润为dp[i][j]. 精确的定义状态是个难点,可以定义四种状态:持有股票&#…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
