OushuDB 用户指南书籍定义创建和管理模式之创建模式

简介: OushuDB 用户指南书籍定义创建和管理模式之创建模式

bVcWx93.png


一个OushuDB数据库集群包含一个或多个已命名数据库。 用户和用户组在整个集群范围内是共享的,但是其它数据并不共享。 任何与服务器连接的客户都只能访问那个在连接请求里声明的数据库。


Note


集群中的用户并不一定要有访问集群内所有数据库的权限。共享用户名的意思是不能有重名用户。 假定同一个集群里有两个数据库和一个joe用户,系统可以配置成只允许joe 访问其中的一个数据库。

一个数据库包含一个或多个已命名的模式,模式又包含表。模式还可以包含其它对象, 包括数据类型、函数、操作符等。同一个对象名可以在不同的模式里使用而不会导致冲突; 比如,schema1和myschema都可以包含一个名为mytable的表。 和数据库不同,模式不是严格分离的:只要有权限,一个用户可以访问他所连接的数据库中的任意模式中的对象。

我们需要模式的原因有很多:

● 允许多个用户使用一个数据库而不会干扰其它用户。

● 把数据库对象组织成逻辑组,让它们更便于管理。

● 第三方的应用可以放在不同的模式中,这样它们就不会和其它对象的名字冲突。

模式类似于操作系统层次的目录,只不过模式不能嵌套。


1、创建模式


要创建一个模式,使用CREATE SCHEMA命令。给出你选择的模式名字。比如:

CREATE SCHEMA myschema;

要创建或者访问在模式中的对象,写出一个 受修饰 的名字,这个名字包含模式名以及表名, 它们之间用一个句点分开:

schema.table

这个方式在任何需要表名字的地方都可用,包括后面讨论的表修改命令和数据访问命令。出于简化,我们将只讨论表,这个概念适用于所有其它已命名对象类型,比如数据类型和函数。

实际上,更一般的语法:

database.schema.table

也可以使用,但目前它只是为了和 SQL 标准 形式上 兼容。如果你写了一个数据库名, 那么它必须和你当前连接的数据库同名。

要在新模式里创建一个表,用:

CREATE TABLE myschema.mytable (...);

如果一个模式是空的(所有它里面的对象都已经删除),那么删除它的命令如下:

DROP SCHEMA myschema;

要删除一个模式及其包含的所有对象,可以使用:

DROP SCHEMA myschema CASCADE;

通常你想创建一个他人拥有的模式(因为这是一种限制用户在定义良好的模式中的活动的方法)。其语法如下:

CREATE SCHEMA schemaname AUTHORIZATION username;

你甚至可以省略模式名字,这时模式名将和用户名同名。参阅 http://www.oushu.com/docs/ch/... 获取这种情况的适用场合。

以pg_开头的模式名是保留给系统使用的,用户不能创建这样的名字。


2、public模式


在前面的小节里,我们没有声明任何模式名字就创建了表。缺省时, 这样的表(以及其它对象)都自动放到一个叫做”public”的模式中去了。 每个新数据库都包含一个这样的模式。因此,下面的命令是等效的:

CREATE TABLE products ( ... );
和:
CREATE TABLE public.products ( ... );

下面是系统默认创建的schema。

template1=# \dnList of schemasName        |  Owner--------------------+----------hawq_toolkit       | ChangLeiinformation_schema | ChangLeipg_aoseg           | ChangLeipg_bitmapindex     | ChangLeipg_catalog         | ChangLeipg_toast           | ChangLeipublic             | ChangLei(7 rows)


目录
相关文章
|
5月前
|
存储 数据格式 运维
开发与运维C++问题之更改数据模型为通用数据结构如何解决
开发与运维C++问题之更改数据模型为通用数据结构如何解决
32 1
|
6月前
|
运维 安全 数据管理
数据管理DMS产品使用合集之如何设置同一个实例里面某一个库指定一个审批流
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
63 1
|
5月前
|
存储
通用研发提效问题之女娲系统管理不同类型的数据源,如何解决
通用研发提效问题之女娲系统管理不同类型的数据源,如何解决
|
6月前
|
运维 Serverless 网络安全
Serverless 应用引擎产品使用合集之能否用一个顶层函数,在云端动态的增加函数脚本或删除脚本
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
小程序 开发者
社区每周丨交易组件新增扩展组件介绍文档及开发成员管理能力优化
社区每周丨交易组件新增扩展组件介绍文档及开发成员管理能力优化
71 11
|
数据库
易搭工作流引擎用是什么开源 还是阿里自研产品,零代码平台场景页面映射数据库表是动态创建,采用什么框架处理,怎么让系统产生高并发能力。易搭权限有没有了解,求解。
易搭工作流引擎用是什么开源 还是阿里自研产品,零代码平台场景页面映射数据库表是动态创建,采用什么框架处理,怎么让系统产生高并发能力。易搭权限有没有了解,求解。
|
数据管理
如何创建支持数据的组织
数据是数字化转型的中心,但智能化管理数据是成功的最大障碍。在数据管理中,这不仅仅是技术和规模的问题,更是组织和流程的问题。
如何创建支持数据的组织
|
SQL 存储 关系型数据库
OushuDB 创建和管理表的基本结构之表的基本概念
OushuDB 创建和管理表的基本结构之表的基本概念
71 0
|
存储 JavaScript 前端开发
SAP 电商云的构建过程中涉及到的三种不同环境类型
SAP 电商云的构建过程中涉及到的三种不同环境类型
250 0
SAP 电商云的构建过程中涉及到的三种不同环境类型
|
资源调度 前端开发 JavaScript
如何搭建一个内部组件共享平台
如今前端越来越趋于组件化的开发方式,最大的益处就是UI页面和逻辑的共用。 在开发者的眼里,如果你打开一个网站,组件化的开发方式会让你看起来像这个样子
797 0
如何搭建一个内部组件共享平台

热门文章

最新文章