PostgreSQL基本操作总结

安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库,本文主要介绍用户权限和数据库的基本操作

1. 用户权限

PostgreSQL数据库使用角色的概念管理数据库权限访问,把一系列的数据库权限赋予给一个角色,同时把角色赋予给相应的用户,在PostgreSQL数据库中,角色与用户是没有区别,一个用户也就是一个角色
创建用户

CREATE USER name [ [ WITH ] option [ ... ] ]

创建角色

CREATE ROLE name [ [ WITH ] option [ ... ] ]

两则的区别是CREATE USER默认创建的用户有LOGIN权限,CREATE ROLE创建的用户没有LOGIN权限

option常用的选项如下所示:
create user
详细解释如下:

参数说明
SUPERUSERNOSUPERUSER
CREATEDBNOCREATEDB
CREATEROLENOCREATEROLE
INHERITNOINHERIT
LOGINNOLOGIN
REPLICATIONNOREPLICATION
BYPASSRLSNOBYPASSRLS
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命令管理

  1. 在数据库中创建模式(SCHEMA)
  2. 在指定的数据库中创建临时表
  3. 连接某个数据库
  4. 在模式中创建数据库对象,如创建表、视图、函数
  5. 在表中做SELECT、UPDATE、INSERT、DELETE等操作
  6. 对序列进行查询、使用和更新
  7. 在声明中创建触发器
  8. 把表、索引建到指定表空间

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. 数据库操作

创建数据库的语法如下:
create database
参数说明:

参数说明
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';

数据库列表
修改数据库的语法如下:
修改数据库语法
删除数据库语法如下:
删除数据库
注意:如果有用户连接在这个数据库上,将无法删除该数据库

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划入门之二维数组的动态规划(过河卒)

P1002 [NOIP2002 普及组] 过河卒 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 过河卒,首先科普一下象棋里面的马的跳跃一步的规则吧(这题真够坑人的,连个规则都不给出,害得我第一次交就全wa)。一张图解释 大家看所…

“解放 Arweave“优惠:4EVERLAND的无缝上传教程

为了进一步展示 Arweave 的能力,4EVERLAND 骄傲地推出了“解放 Arweave”活动。我们认识到 Arweave 在数据完整性、抗审查性以及长期保存方面的无与伦比的优势,因此我们与这个去中心化的存储巨头建立了强大的集成。 克服了过去与加密货币支付逻辑相关的…

Redis过期数据的删除策略

1 介绍 Redis 是一个kv型数据库,我们所有的数据都是存放在内存中的,但是内存是有大小限制的,不可能无限制的增量。 想要把不需要的数据清理掉,一种办法是直接删除,这个咱们前面章节有详细说过;另外一种就是…

ubuntu18.04安装远程控制软件ToDest方法,针对官网指令报错情况

有时我们在家办公,需要控制实验室的笔记本,因此好用的远程控制软件会让我们的工作事半功倍! 常用的远程控制软件有ToDesk,向日葵,以及TeamViewer,但是为感觉ToDesk更流畅一些,所以这里介绍一下…

Python - 面向对象的属性,类方法,静态方法,实例方法的区别及用法详解

一. 前言 在Python的面向对象编程中,类属性和实例属性是两个不同的概念,它们在作用域和使用方式上有所区别。在Python中的面向对象编程中有三种方法:实例方法、类方法和静态方法,它们之间的差异主要体现在参数传递和调用方式上。…

Windows运行Spark所需的Hadoop安装

解压文件 复制bin目录 找到winutils-master文件hadoop对应的bin目录版本 全部复制替换掉hadoop的bin目录文件 复制hadoop.dll文件 将bin目录下的hadoop.dll文件复制到System32目录下 配置环境变量 修改hadoop-env.cmd配置文件 注意jdk装在非C盘则完全没问题,如果装在…

23种设计模式攻关

👍一、创建者模式 🔖1.1、单例模式 单例模式(Singleton Pattern),用于确保一个类只有一个实例,并提供全局访问点。 在某些情况下,我们需要确保一个类只能有一个实例,比如数据库连接…

leetcode 674. 最长连续递增序列

2023.8.24 与最长递增子序列 类似,不同的是, 本题要求连续序列,所以不需要第二层遍历比较之前所有的元素了,只需要比较上一个元素i-1。 dp[i]的含义为:以nums[i]元素为结尾的序列的最长递增子序列。 注意这里是以i为结…

Unity血条制作

一、使用UGUI制作血条 我一般使用image制作血条,当然,也可以使用滑动组件Slider。image的具体操作步骤如下 普通血条 1、在Hierarchy面板中,创建两个image组件,将其中一个设置为另外一个的子节点 2、在Inspector面板中&#…

酷开科技大屏营销,锁定目标人群助力营销投放

近日,中科网联发布《2023年中国家庭大屏白皮书》,数据显示智能电视近三年内使用人群增长平稳。全国4.94亿家庭户中,智能大屏渗透率近九成。不仅如此, CCData研究预测,2025年中国智能电视渗透率将达到95%以上。这与三年…

收单外包服务机构(第三方支付公司服务商)是什么?

收单外包服务机构(第三方支付公司服务商)是什么? 伴随着电子商务的迅速发展,越来越多的企业开始认识到收单外包服务机构的重要性。 收单外包是一个重要的服务机构,可以帮助企业解决许多与支付相关的问题。 收单外包服务…

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…