热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

oracle之Schema

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,这样,一个大数据库就可以根据应用把其表分开来管理。不同的schema之间它们没有直接的关系,

在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中, 同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库, 这样,一个大数据库就可以根据应用把其表分开来管理。 不同的schema之间它们没有直接的关系,

  在一个数据库中可以有多个应用的数据表,这些不同应用的表可以放在不同的schema之中,

  同时,每一个schema对应一个用户,不同的应用可以以不同的用户连接数据库,

  这样,一个大数据库就可以根据应用把其表分开来管理。

  不同的schema之间它们没有直接的关系,不同的shcema之间的表可以同名,

  也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下,

  每个用户只能操作它自己的schema下的所有的表。不同的schema下的同名的表,

  可以存入不同的数据(即schema用户自己的数据)。 Oracle里schema几乎和user/用户是通用的。schema是指一组数据库object

  (比如:表,视图,包,序列,等等),而这些object是属于用户的,

  属于一个用户的所有object就叫schema。 如果你使用Oracle的企业管理器Enterprise Manager,你会发现里面的用户就叫schema。 Schema 中文意思是 方案. "方案"只是 Oracle 一个分类,不同用户有不同的方案. 拿 DBA Studio 来说吧,在左边分了四大类:(例程,存储,安全,方案) 例程: 是管理库的启动...之类的. 存储: 管理表空间,数据文件之类. 安全: 就是管理用户(密码,表空间分配...) 方案: 有(表,视图,存储过程...),不同用户有不同的案. 如: 在"方案"->选你的"用户名"之后,才会出现用户名相关的表. ----------------------------两个不容易理解的概念──user和schema user是控制权限的,而schema则是一个容器,非所有者如果需要访问这个容器下的对象

  就需要在对象前面写上schema(owner)的名字,如果不想写而又没有创建synonym,此时可以通过alter session set current_schema=schema_name来改变当前session的schema从而在访问对象时省去schema(owner);最终能否访问对象还是要看是否有访问这个对象的权限而和schema无关。 深入理解user和schema的区别: user即Oracle中的用户,和所有系统的中用户概念类似,用户所持有的是系统的权限及资源; 而schema所涵盖的是各种对象,它包含了表、函数、包等等对象的“所在地”,并不包括对他们的权限控制。 好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),,而不是房子(schema)。 你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以通过alter session的方式

  进入别人的房子。 这个时候,你可以看到别人房子里的家具(desc)。 如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。 至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的

  主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。

  alter session set schema可以用来代替synonyms。 如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym,

  同时又不想把其他schema名字放入代码中,就可以首先使用alter session set schema=<其他schema名字>。

推荐阅读
  • 3D打印技术的最新进展及其产业应用前景
    今年5月,我国成功发射的长征五号B运载火箭携带了新一代载人飞船试验船,船上首次搭载了一台3D打印机,标志着我国在太空3D打印领域的重大突破。本文将探讨3D打印技术的最新进展及其对未来产业的潜在影响。 ... [详细]
  • 本文介绍了Spring 2.0引入的TaskExecutor接口及其多种实现,包括同步和异步执行任务的方式。文章详细解释了如何在Spring应用中配置和使用这些线程池实现,以提高应用的性能和可管理性。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 前言Spring中一个Bean的创建过程是十分复杂的,这里通过源码来简单分析一下。原理分析相关类图如下DefaultListableBeanFactory就是IOC容器的最终实现, ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • async/await 是现代 JavaScript 中非常强大的异步编程工具,可以极大地简化异步代码的编写。本文将详细介绍 async 和 await 的用法及其背后的原理。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 本文主要探讨了Java中处理ActionEvent事件的接口,以及一些常见的编程问题和解决方案,包括方法重载、成员变量访问、镜片质量检测等。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • C# 实现可浮动工具栏功能
    本文介绍如何在 C# 中实现一个可浮动的工具栏,即工具栏可以从其初始位置拖出,并且可以重新拖回原位。通过创建一个新的窗口作为工具栏的容器,并利用 .NET Framework 提供的 ToolStrip 控件,可以轻松实现这一功能。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
author-avatar
失----
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有