首页 > 数据库 >PostgreSQL教程:SQL案例(创建用户、创建数据库、创建schema、赋权)

PostgreSQL教程:SQL案例(创建用户、创建数据库、创建schema、赋权)

时间:2023-09-24 22:32:46浏览次数:54  
标签:赋权 PostgreSQL -- 创建 数据库 用户 laozheng 构建 schema


需求

  • 构建一个用户
  • 构建一个数据库
  • 在这个数据库下构建一个schema(数据库默认有一个public的schema)
  • 将这个schema的权限赋予用户
  • 在这个schema下构建一个表
  • 将表的select,update,insert权限赋予用户

实现

-- 准备用户
create user laozheng with password 'laozheng';
-- 准备数据库
create database laozheng;
-- 切换数据库
\c laozheng;
-- 构建schema
create schema laozheng;
-- 将schema的拥有者修改为laozheng用户
alter schema laozheng owner to laozheng;
-- 将laozheng库下的laozheng的schema中的表的增,改,查权限赋予给laozheng用户
grant select,insert,update on all tables in schema laozheng to laozheng;
-- 用postgres用户先构建一张表
create table laozheng.test(id int);
-- 切换到laozheng用户。
\c laozheng -laozheng 
-- 报错:
-- 致命错误:  对用户"-laozheng"的对等认证失败
-- Previous connection kept
-- 上述方式直接凉凉,原因是匹配连接方式时,基于pg_hba.conf文件去从上往下找
-- 找到的第一个是local,匹配上的。发现连接方式是peer。
-- peer代表用当前系统用户去连接PostgreSQL
-- 当前系统用户只有postgres,没有laozheng,无法使用peer连接
-- 想构建laozheng用户时,发现postgreSQL的所有文件拥有者和所属组都是postgres,并且能操作的只有拥有者

PostgreSQL教程:SQL案例(创建用户、创建数据库、创建schema、赋权)_本地连接

-- 基于上述问题,不采用本地连接即可。
-- 采用远程连接。
psql -h 192.168.11.32 -p 5432 -U laozheng -W
-- 这样一来,跳过了local链接方式的匹配,直接锁定到后面的host,host的连接方式是md5,md5其实就是密码加密了。
-- 登录后,直接输入
\dn
-- 查看到当前database下有两个schema

PostgreSQL教程:SQL案例(创建用户、创建数据库、创建schema、赋权)_postgresql_02


这种权限的赋予方式,可以用管理员用户去构建整体表结构,如此一来,分配指定用户,赋予不同的权限,这样一来,就不怕用户误操了。


标签:赋权,PostgreSQL,--,创建,数据库,用户,laozheng,构建,schema
From: https://blog.51cto.com/zhangxueliang/7589237

相关文章

  • PostgreSQL教程:权限操作
    权限操作前,要先掌握一下PGSQL的逻辑结构逻辑结构图可以看到PGSQL一个数据库中有多个schema,在每个schema下都有自己的相应的库表信息,权限粒度会比MySQL更细一些。在PGSQL中,权限的管理分为很多多层server、cluster、tablespace级别:这个级别一般是基于pg_hba.conf去配置database级别:通......
  • PostgreSQL排序字段不唯一导致分页查询结果出现重复数据
    背景pg单字段排序,排序字段中可能会出现重复,这样就会导致我们在进行分页查询时会出现一些和预期不相符的现象,如这个数据在第一页出现了,然后再第二页又出现。复现步骤createtabletest_select_order_page_duplicate(idvarchar(36)notnullconstrainttest_select_order_pa......
  • 完全二叉树的创建与遍历
    创建一棵完全二叉树(递归方式)(创建方法仅使用与完全二叉树)层序遍历完全二叉树(遍历算法适用于所有二叉树):利用队列FIFO的性质中序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)先序遍历完全二叉树(递归方式,遍历算法适用于所有二叉树)后序遍历完全二叉树(递归方式,遍历算法适用于所......
  • 创建文件系统1
    一:概述Linux系统把每个硬件都当做是一个文件,这样用户就可以用读写文件的方式实现对硬件的访问了。文件系统基于操作系统,它可以管理和组织保存在磁盘驱动器上的数据。通过文件系统,实现数据的完整性,保证读写数据的一致性,同时也实现了读写数据简单化。二:Linux中的主要文件系统以及创建......
  • yum安装postgresql-14
    PostgreSQL:Linuxdownloads(RedHatfamily)sudoyuminstall-yhttps://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm#InstallPostgreSQL:sudoyuminstall-ypostgresql14-server#Optionallyinitializet......
  • 解决k8s删除pod后又重新创建了新的pod
    1、问题现象2、原因在Kubernetes中,当你删除一个Pod时,如果该Pod是由Deployment、ReplicaSet或PodController创建的,那么这个Pod会被标记为“已删除”,但实际上并不会立即从系统中删除。具体而言,当一个Pod被删除时:如果这个Pod是由Deployment创建的,那么系统会创建一个新的Replic......
  • TienChin-课程管理-创建工程
    创建方式与之前一样,如下奉上generateCourse代码。@TestvoidgenerateCourse(){Stringpath="E:\\Desktop\\TienChin\\tienchin-service\\tienchin-course\\src\\main";FastAutoGenerator.create("jdbc:mysql://localhost:......
  • visual studio2019创建管理系统的数据库
    1、打开服务资源管理器然后选择sqlserver数据库文件:自定义数据库名称:显示不存在之后,选择创建即可,然后就看到服务资源管理器这里出现:2、右键表-->添加新表然后新建一个名为UserTable的表,存放用户数据信息,字段名为:UId、UName、UPhone、UAddress、UPassword:然后点击左......
  • TienChin-课程管理-数据表创建
    CREATETABLE`tienchin_course`(`course_id`intNOTNULLAUTO_INCREMENTCOMMENT'课程ID',`type`intNULLCOMMENT&......
  • 创建进程的三种方式
    Java中创建线程主要有三种方式,分别为继承Thread类、实现Runnable接口、实现Callable接口。一、继承Thread类继承Thread类,重写run()方法,调用start()方法启动线程publicclassThreadTest{ publicstaticclassMyThreadextendsThread{@Overridepublicvoid......