企业站模板大全,郑州网络营销公司排名,vps服务器购买网站,flash网站模板修改#x1f341; 博主 开着拖拉机回家带您 Go to New World.✨#x1f341; #x1f984; 个人主页——#x1f390;开着拖拉机回家_Linux,Java基础学习,大数据运维-CSDN博客 #x1f390;✨#x1f341; #x1fa81;#x1f341; 希望本文能够给您带来一定的… 博主 开着拖拉机回家带您 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;
因为配置文件中默认的搜索路径包括公共schemapostgres用户数据超级用户对所有schema都有访问权限授权使用 管理员完成。 USAGE和SELECT区别 USAGE 权限只让角色能够访问 SCHEMA 中的数据类型、操作符、函数等其他数据库对象但是不包含对 SCHEMA 中的表的访问权。 如果没有为表例如api.todos授权 SELECT 权限即使已授权 SCHEMA 的 USAGE 权限角色仍然无法读取该表中的数据。为了允许一个角色执行 SELECT 查询并获取某个表中的数据你需要为该角色分别授权 SCHEMA 的 USAGE 权限和表的 SELECT 权限。 五、schema和备份 postgresql数据库备份时可以选择备份指定的schema或者备份整个数据库。备份指定schema需要用到命令的--schemaschema_name选项。例如备份名称为my_backup的my_schema schema
pg_dump -h localhost -p 5432 -U postgres -F t -b -v --schemakangll_schema -f ./my_backup.tar.gz kangll_test
注意该命令只会备份kangll_schema schema中的对象。如下是备份完成后 tar包内容 PostgreSQL schema详解_笔记大全_设计学院
原文链接Schema是什么_数据库中的schema是什么意思_Loobeeke的博客-CSDN博客