模式介绍和基本管理

news2025/1/17 21:58:27

模式介绍:

        用户的模式(SCHEMA)指的是用户账号拥有的对象集,在概念上可将其看作是包含表、 视图、索引和权限定义的对象。在 DM 中,一个用户可以创建多个模式,一个模式中的对象 (表、视图等)可以被多个用户使用。模式不是严格分离的,一个用户可以访问他所连接的 数据库中有权限访问的任意模式中的对象。 系统为每一个用户自动建立了一个与用户名同名的模式作为其默认模式,用户还可以用模式定义语句建立其它模式。

采用模式的原因有几点:

1. 允许多个用户使用一个数据库而不会干扰其它用户;

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

3. 第三方的应用可以放在不同的模式中,这样可以避免和其它对象的名字冲突。

       模式类似于操作系统层次的目录,只不过模式不能嵌套。DM 模式可以通过 SQL 语句进行操作。DM 模式主要包含以下的模式对象:

视图索引触发器存储过程/函数序列全文索引同义词

外部链接。在引用模式对象的时候,一般要在模式对象名前面加上模式名。具体格式如下:

[模式名].对象名

        当然,在当前模式和要引用的模式对象所属的模式相同时,可以省略模式名。如果我们访问一个表时,没有指明该表属于哪一个模式,系统就会自动给我们在表前加上缺省的模式名。类似地,如果我们在创建对象时不指定该对象的模式,则该对象的模式为用户的缺省模式。

模式对象之外的其他对象统一称为非模式对象,非模式对象主要包括用户角色权限表空间。

模式与用户之间的关系:

模式定义:模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集

模式对象: 表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域

模式与用户之间的关系:

        当系统建立一个用户时,会自动生成一个对应的模式。用户还可以建立其他模式,DM 中用户和模式是一对多的关系,一个用户可以拥有多个模式,一个模式仅能归属于一个用户。Oracle 中用户和模式是一对一的关系。

        配置登录默认模式、模式切换,都是某一个用户自己建立的多个模式之间切换,模式和用户不存在授权的概念,也不能授权,只有属于和不属于;同时,我们所有的模式切换,是不能跨到其他用户下面去的;

查看当前数据库中存在的模式:

select * from SYSOBJECTS t where t."TYPE$" ='SCH';

查看当前数据库中存在的用户

select * from SYSOBJECTS t where t."SUBTYPE$" ='USER';

查询模式和用户的对应关系一对多的关系

SQL> select b.id userid, b.name username,a.id scheid, a.name schename

from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b

where a."TYPE$" = 'SCH' and a.pid = b.id;

行号       USERID      USERNAME   SCHEID      SCHENAME

---------- ----------- ---------- ----------- ----------

1          50331648    SYS        150994944   SYS

2          50331648    SYS        150994948   CTISYS

3          50331649    SYSDBA     150994945   SYSDBA

4          50331650    SYSAUDITOR 150994946   SYSAUDITOR

5          50331651    SYSSSO     150994947   SYSSSO

6          50331748    DEM        150995944   DEM

6 rows got

模式管理

--创建模式

create schema dmhr_test AUTHORIZATION dmhr;

create table dmhr_test.test(id int, name varchar(20));

查看创建的模式:

SQL> select b.id userid, b.name username,a.id scheid, a.name schename

from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b

where a."TYPE$" = 'SCH' and a.pid = b.id;

行号       USERID      USERNAME   SCHEID      SCHENAME

---------- ----------- ---------- ----------- ----------

1          50331648    SYS        150994944   SYS

2          50331648    SYS        150994948   CTISYS

3          50331649    SYSDBA     150994945   SYSDBA

4          50331650    SYSAUDITOR 150994946   SYSAUDITOR

5          50331651    SYSSSO     150994947   SYSSSO

6          50331748    DEM        150995944   DEM

7          50331749    DMHR       150995945   DMHR

8          50331749    DMHR       150995946   DMHR_TEST

8 rows got

--查看当前模式和当前用户

SQL> select sys_context('USERENV','CURRENT_SCHEMA');

行号       SYS_CONTEXT('USERENV','CURRENT_SCHEMA')

---------- ---------------------------------------

1          DMHR

已用时间: 0.950(毫秒). 执行号:1173.

SQL> select sys_context('USERENV','CURRENT_USER');

行号       SYS_CONTEXT('USERENV','CURRENT_USER')

---------- -------------------------------------

1          DMHR

已用时间: 0.586(毫秒). 执行号:1174.

SQL> desc test

[-20001]:无效的对象名.

DMHR模式中无test表,需加上dmhr_test模式名访问test表

SQL> desc dmhr_test.test

行号       NAME TYPE$       NULLABLE

---------- ---- ----------- --------

1          ID   INTEGER     Y

2          NAME VARCHAR(20) Y

已用时间: 4.708(毫秒). 执行号:1183.

SQL>

--切换模式(仅对当前会话生效)

SQL> set SCHEMA dmhr_test;

操作已执行

已用时间: 0.295(毫秒). 执行号:0.

SQL> select sys_context('USERENV','CURRENT_SCHEMA');

行号       SYS_CONTEXT('USERENV','CURRENT_SCHEMA')

---------- ---------------------------------------

1          DMHR_TEST

已经切换到了dmhr_test模式

SQL> select sys_context('USERENV','CURRENT_USER');

行号       SYS_CONTEXT('USERENV','CURRENT_USER')

---------- -------------------------------------

1          DMHR

已用时间: 0.420(毫秒). 执行号:1177.

SQL>

切换到了dmhr_test模式后,操作test表不用加模式名前缀.

SQL> desc test

行号       NAME TYPE$       NULLABLE

---------- ---- ----------- --------

1          ID   INTEGER     Y

2          NAME VARCHAR(20) Y

已用时间: 6.261(毫秒). 执行号:1178.

SQL> insert into test values(1,'test01');

影响行数 1

已用时间: 1.525(毫秒). 执行号:1179.

SQL> commit;

操作已执行

已用时间: 1.418(毫秒). 执行号:1180.

SQL> select * from test;

行号       ID          NAME

---------- ----------- ------

1          1           test01

已用时间: 0.387(毫秒). 执行号:1181.

查询当前模式下的表:

SELECT

        *

FROM

        (

                SELECT

                        SCH.NAME SCHEMA_NAME,

                        OBJ.NAME TABLE_NAME ,

                        OBJ.CRTDATE CREATE_TIME

                FROM

                        SYSOBJECTS SCH,

                        SYSOBJECTS OBJ

                WHERE

                        SCH.ID        =OBJ.SCHID

                    AND OBJ.SUBTYPE$ IN ('UTAB', 'VIEW')

                    AND SCH.NAME      =SF_GET_SCHEMA_NAME_BY_ID(CURRENT_SCHID)

        )

WHERE

        TABLE_NAME = 'TEST';

删除模式:

drop SCHEMA IF EXISTS dmhr_test;

drop SCHEMA IF EXISTS dmhr_test CASCADE; --级联删除模式下对象,生产环境慎

达梦在线服务平台:https://eco.dameng.com

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习】- 作业2: MNIST手写数字识别

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

stata软件基本操作

一、stata软件介绍 Stata是一个用于分析和管理数据的功能强大又小巧玲珑的实用统计分析软件,由美国计算机资源中心(Computer Resource Center)研制。它同时具有数据管理软件、统计分析软件、绘图软件、矩阵计算软件和程序语言的特点&#xf…

二叉树的相关知识

1.树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&#…

Typora Mac版本安装 Pandoc 导出文件为word格式(windows可通用)

今天在和一位商务小伙伴对接的时候,需要提供一份 word 版本的初稿。对于习惯了使用 支持 markdown 语法的 typora 来说,复制粘贴到 word 是不可能的。 可以通过 “导出” 功能,选择将当前文件导出为 “word” 格式,这个过程有个小…

通过CSS实现炫酷效果,让你的网页不再平淡无奇

通过CSS实现炫酷效果,让你的网页不再平淡无奇 (一)CSS基础1.1CSS介绍1.2CSS样式1.3CSS 格式 (二)CSS 选择器2.1标签选择器2.2类选择器2.3层级选择器2.4id选择器2.5组选择器2.6伪类选择器2.7通配符选择器 (三)样式表引入…

【自然语言处理】 - 作业3: 文本情感分析

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

C++的继承

继承 1.继承的概念及定义1.1继承的概念1.2 继承定义1.2.1定义格式1.2.2继承关系和访问限定符1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换3.继承中的作用域4.派生类的默认成员函数5.继承与友元6. 继承与静态成员7.复杂的菱形继承及菱形虚拟继承 1.继承的概念及…

舒适交友 - 什么样的婚姻最舒服 稳态婚姻

人人都是心理学家,mbti等_个人渣记录仅为自己搜索用的博客-CSDN博客 人生两大目标: 生产力提升 让身边的人快乐. 激动 兴奋 不一定 舒适 开心 幸福 安全感 平静 宁静 祥和 婚姻 稳态 041 探秘“情绪”——如何确定只有六种基本情绪? - 知乎 ( 6种原始情绪&am…

chatgpt赋能Python-python_dilate

Python中的dilate操作:了解该操作及其应用 在计算机视觉领域,dilate操作是一种常用的图像处理技术。在Python中,我们可以使用OpenCV库来实现dilate操作。本文将介绍dilate操作的基本概念,讨论其应用及如何使用Python进行实现。 …

C++爱好者的自我修养(13.1):一维数组——简介,声明,初始化(赋值)

文章目录 1.什么是数组?2.数组的声明2.1格式2.2特别注意:有效下标值的重要性 3.数组的初始化(赋值)3.1格式3.2 C11新增的初始化方法规则功能3.2.1 等号的省略3.2.2 当大括号内无东西3.2.3 禁止缩窄转换 1.什么是数组? …

Kafka实时数据同步

目录 1 概述 2 捕获Oracle数据到Kafka 2.1 数据捕获设置 2.2 数据发布任务设置 2.3 捕获到发布数据流映射 2.4 查看任务执行日志 3 订阅Kafka数据到ClickHouse 3.1 数据订阅设置 3.2 数据加载设置 3.3 订阅到加载数据流映射 3.4 查看任务执行日志 4 校验数据一致性 …

GEE:GEDI数据提取值到矢量区域和点

作者:CSDN @ _养乐多_ 本文将介绍GEDI数据集从GEE上下载到本地,并将每一个激光点的值提取为一个矢量区域,并提取值到矢量区域的方法。 文章目录 一、GEDI数据下载二、GEDI数据栅格矢量化三、提取值到区域四、提取栅格值到点五、空间插值一、GEDI数据下载 GEDI数据下载链接:…

80个Python练手小项目;AI开发者的总结与反思;B站免费Stable Diffusion视频教程;五问ChatGPT+医学影像 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『美团大模型已秘密研发数月』在仅剩一年的窗口期里努力奔跑 5月18日下午,美团内部召开大模型技术分享会,美团…

【深度学习】- 作业5: Didi交通场景-车辆预测

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

ONVIF协议了解

第一部分:ONVIF理论基础 一. 为什么要用ONVIF协议: IPC厂商主流的遵循的是RTSP协议进行推流,那么RTSP最重要的就是RTSP的URL地址。但是各个厂商的URL地址格式都不一样,所以就诞生了一个标注协议—ONVIF。ONVIF协议的出现&#x…

开源赋能 普惠未来|QUICKPOOL诚邀您参与2023开放原子全球开源峰会

QUICKPOOL算力调度系统的诞生和发展,为广大的算力领域从业者和技术开发者,提供了一条中国技术路线,并与IBM LSF、SLURM、PBS、SGE等产品,共同助力全球算力发展。QUICKPOOL算力调度系统成熟、稳定,具备“超算&智算”…

MATLAB 搜索某一点的K邻近点(12)

MATLAB 搜索某一点的K邻近点(12) 前言一、算法介绍1.1 :无序点云的K邻近点搜索1.2 :有序点云的K邻近点搜索二、具体实现示例2.1 算法一 (含详细注释)2.2 算法二 (含详细注释)前言 在点云处理中,最基本的算法之一就是搜索某一点的近邻点(1个最近或多个邻近),这在重…

MySQL数据库学习笔记(八)实验课五之数据库系统设计

一上来就实验课五了,实验课四呢?实验课四的内容是添加索引,差不多就是那样。 这次实验课的内容感觉就有点硬核了,数据库系统设计。 重点: 记录下我在实验里面遇到的一些问题 1,E-R图绘制 我是用drawio绘…

Rancher1.6高可用架构设计与实现思路

文章目录 [toc] 1.架构图2.建立数据导入脚本2.1 单机运行命令2.2 导出单机容器中的数据库文件2.3 dump文件 3.启动命令4.总结 1.架构图 架构说明:本文重点是rancher1.6.17的多实例共用一个数据库持久化数据,对于前置的负载均衡和mysql5.7的高可用不做过多…

linux 框架学习法

学习视频:【北京迅为】再谈Linux学习方法-框架学习法 学习UBOOT 框架学习法 linux基础框架 文件系统框架 bootloader是上电后执行的第一个程序bootloader会引导linux内核,会执行zimagelinux内核会挂载文件系统,文件系统可大可小,…