【PostgreSQL】系列之 一 schema详解(二)

 

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

🦄 个人主页——🎐开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 🎐✨🍁

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥


目录

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁

一、概述

二、创建schema

三、访问schema中的对象

四、schema和授权

五、schema和备份


一、概述


在SQL环境下,schema就是数据库对象的集合,所谓的数据库对象也就是常说的表,索引,视图,存储过程等。在schema之上的,就是数据库的实例,也就是通常create databases获得的东西。也就是说一个schema 实例 可以有多个schema, 可以给不同的用户创建不同的schema,并且他们都是在同一数据库实例下面。

PostgreSQL schema是其独有的一个强大的功能,它可以使一个单独的数据库实例中包含多个独立的、命名空间互相隔离的区域。这个功能让多个应用程序可以在同一个数据库实例中运行,而不会相互干扰。

schema是由一组表、视图、序列、函数、索引等对象组成的,这些对象也被称为schema中的命名空间。


二、创建schema


在postgresql中,需要使用CREATE SCHEMA命令来创建一个新的schema。语法如下:

CREATE SCHEMA schema_name;

其中,schema_name为指定的schema名称。如果要在query中使用新创建的schema,必须先将当前查询所在的schema切换至新的schema,通过以下语句实现:

SET search_path TO schema_name;

此时查询将默认从新的schema中获取数据。


三、访问schema中的对象


通过schema的隔离机制,可以给应用程序提供'私有'的命名空间。如果schema中有同名的表或其他对象,postgresql会优先选择当前schema中自己的对象。在sql中可以通过以下语法访问特定schema的对象:

schema_name.table_name

例如访问一个名为'students'的表:

SELECT * FROM ambari_test.users;

我们可以看到 只要切换到对应的 schema ,schema 加与不加 都可以 访问表,

在ambari_test 的 schema 访问public的 stu表 会报错,这个时候我们需要加上 schema ,也就是说 跨 schema 访问 需要显示加上 schema 。


四、schema和授权


在postgresql中,可以使用GRANT和REVOKE命令控制用户对schema中的对象的访问权限。授权用法如下:

GRANT privilege ON SCHEMA schema_name TO role_name;

其中,privilege可以是SELECT、INSERT、UPDATE、DELETE、USAGE等权限,role_name是指授权对象。例如,授权用户'admin'可以访问'students'表:

# 创建名为 zhang 的用户
create user zhang with password '123456';# 授予使用权限
grant usage on schema kangll_schema  to zhang;# 给zhang用户 授予kangll_schema 所有表的查询权限
grant select  on all tables in schema kangll_schema to zhang;

因为配置文件中默认的搜索路径包括公共schema,postgres用户(数据超级用户)对所有schema都有访问权限,授权使用 管理员完成。

USAGE和SELECT区别

USAGE 权限只让角色能够访问 SCHEMA 中的数据类型、操作符、函数等其他数据库对象,但是不包含对 SCHEMA 中的表的访问权。

如果没有为表(例如:api.todos)授权 SELECT 权限,即使已授权 SCHEMA 的 USAGE 权限,角色仍然无法读取该表中的数据。为了允许一个角色执行 SELECT 查询并获取某个表中的数据,你需要为该角色分别授权 SCHEMA 的 USAGE 权限和表的 SELECT 权限。


五、schema和备份


postgresql数据库备份时,可以选择备份指定的schema,或者备份整个数据库。备份指定schema需要用到命令的--schema=schema_name选项。例如备份名称为'my_backup'的'my_schema' schema:
 

pg_dump -h localhost -p 5432 -U postgres -F t -b -v --schema=kangll_schema -f ./my_backup.tar.gz kangll_test

注意,该命令只会备份'kangll_schema' schema中的对象。如下是备份完成后 tar包内容:


PostgreSQL schema详解_笔记大全_设计学院

原文链接:Schema是什么_数据库中的schema是什么意思_Loobeeke的博客-CSDN博客

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

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

相关文章

操作系统需要重点关注指标

机器层面的监控分为两部分,带内监控和带外监控。带内监控就是通过带内网络来监控,主要是以在 OS 里部署 Agent 的方式,来获取 OS 的 CPU、内存、磁盘、IO、网络、进程等相关监控指标。 外监控走的是带外网络,通常和业务网络不互通…

【图像去噪】基于原始对偶算法优化的TV-L1模型进行图像去噪研究(Matlab代码实现)

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

STM32基础回顾

文章目录 单片机编程的原理GPIO中断EXTI外部中断定时器中断、串口中断 定时器定时器中断配置过程通用定时器输出比较功能:PWM波的生成定时器的输入捕获功能主从触发模式PWMI模式 定时器的编码器接口 DMA简介通信接口USART软件配置流程:1、仅发数据的配置…

交互流程图设计软件都有哪些?

交互流程图是设计行业信息流、观点流或组件流的图形代表。但是市场上应该如何选择各种交互流程图软件呢?如何使用高质量的交互流程图软件来绘制高端氛围的高档流程图?今天,小边给您带来了十个超级实用的交互流程图软件,我希望能帮…

Java中的SPI机制与扫描class原理

文章目录 前言ClassLoaderJAVA SPI机制Spring SPI机制示例原理 如何加载jar包里的class 前言 Java的SPI机制与Spring中的SPI机制是如何实现的? ClassLoader 这里涉及到了class Loader的机制,有些复杂,jdk中提供默认3个class Loader&#x…

解决在mybatis中使用class属性绑定映射文件出现的异常问题~

如下所示&#xff0c;当我在XML文件中通过class属性配置其mapper文件时&#xff0c;出现下述错误 <mappers><mapper class"mappers.userMapper"/> </mappers>错误描述&#xff1a; 解决方法如下所示&#xff1a;在pom.xml文件中添加下述代码 <…

【广州华锐视点】葡萄种植VR虚拟仿真实训平台

随着虚拟现实(VR)技术的不断发展&#xff0c;越来越多的教育领域开始尝试将VR技术应用于教学中。在葡萄栽培这一专业领域&#xff0c;我们开发了一款创新的VR实训课件&#xff0c;旨在为学生提供沉浸式的互动学习体验。本篇文案将为您介绍葡萄种植VR虚拟仿真实训平台所提供的互…

Leetcode-每日一题【剑指 Offer 06. 从尾到头打印链表】

题目 输入一个链表的头节点&#xff0c;从尾到头反过来返回每个节点的值&#xff08;用数组返回&#xff09;。 示例 1&#xff1a; 输入&#xff1a;head [1,3,2]输出&#xff1a;[2,3,1] 限制&#xff1a; 0 < 链表长度 < 10000 解题思路 1.题目要求我们从尾到头反过…

AOP获取切点表达式中注解的属性

文章目录 1、获取Cacheable注解的属性2、获取自定义注解的属性 1、获取Cacheable注解的属性 有个小需求&#xff0c;要在日志中打印支持redis缓存的方法的相关信息&#xff0c;这里切点表达式动词用annotation&#xff0c;后面跟Cacheable注解 Component Aspect Slf4j public…

Curve深陷安全事件,OKLink如何破局

出品&#xff5c;欧科云链研究院 作者&#xff5c;Matthew Lee 7月31号&#xff0c;Curve 在平台表示 Vyper 0.2.15 的稳定币池由于编译器的漏洞所以遭到攻击。具体因为重入锁功能的失效&#xff0c;所以黑客可以轻易发动重入攻击&#xff0c;即允许攻击者在单次交易中执行某…

神策新一代分析引擎架构演进

近日&#xff0c;神策数据已经推出全新的神策分析 2.5 版本&#xff0c;该版本支持分析模型与外部数据的融合性接入&#xff0c;构建全域数据融合模型&#xff0c;实现从用户到经营的全链路、全场景分析。新版本的神策分析能够为企业提供更全面、更有效的市场信息和经营策略&am…

16-1_Qt 5.9 C++开发指南_多语言界面

文章目录 1. 多语言界面设计概述2. tr()函数的使用3. 生成语言翻译文件4. 使用Qt Linguist 翻译 ts 文件5. 调用翻译文件改变界面语言5.1 生成qm文件5.2 项目启动时设置界面语言5.3 动态切换语言 1. 多语言界面设计概述 有些软件需要开发多语言界面版本&#xff0c;如中文版和…