`
licg1234
  • 浏览: 49886 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

oracle schema 与 user

    博客分类:
  • SQL
阅读更多

首先,可以先看一下schema和user的定义:
A schema is a collection of database objects (used by a user). 
Schema objects are the logical structures that directly refer to the database’s data.
A user is a name defined in the database that can connect to and access objects.
Schemas and users help database administrators manage database security.

从中我们可以看出,schema为数据库对象的集合,为了区分各个集合,需要给这个集合起个名字,这些名字就是在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema。
schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。

一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是在企业管理器的方案下看到schema名都为数据库用户名的原因。
Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决(Oracle中虽然有create schema语句,但是它并不是用来创建一个schema的)。在创建一个用户的同时,为这个用户创建一个与用户名同名的schem并作为该用户的缺省shcema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同,所有我们可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。

一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select * from emp; 其实,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,需要在创建对象时指定该对象的表空间。

 

 

 

 

有人举了个很生动的例子,来说明Database、User、Schema、Tables、Col、Row等之间的关系

“可以把Database看作是一个大仓库,仓库分了很多很多的房间,Schema就是其中的房间,一个Schema代表一个房间,Table可以看作是每个Schema中的床,Table(床)就被放入每个房间中,不能放置在房间之外,那岂不是晚上睡觉无家可归了。

然后床上可以放置很多物品,就好比Table上可以放置很多列和行一样,数据库中存储数据的基本单元是Table,现实中每个仓库放置物品的基本单位就是床, User就是每个Schema的主人(所以Schema包含的是Object,而不是User)。

其实User是对应与数据库的(即User是每个对应数据库的主人),既然有操作数据库(仓库)的权利,就肯定有操作数据库中每个Schema(房间)的权利,就是说每个数据库映射的User有每个Schema(房间)的钥匙,换句话说,如果他是某个仓库的主人,那么这个仓库的使用权和仓库中的所有东西都是他的(包括房间),他有完全的操作权,可以扔掉不用的东西从每个房间,也可以放置一些有用的东西到某一个房间。还可以给User分配具体的权限,也就是他到某一个房间能做些什么,是只能看(Read-Only),还是可以像主人一样有所有的控制权(R/W),这个就要看这个User所对应的角色Role了”

分享到:
评论

相关推荐

    oracle中schema指的是什么意思

    因此,Schema的数目与User的数目相同,每个Schema都有一个与之对应且同名的User。 当我们访问数据库对象时,如果没有明确指出对象所属的Schema,系统会自动使用当前用户的默认Schema作为前缀。例如,当我们执行`...

    oracle数据库体系结构之一【user和schema】

    Oracle数据库中,用户(User)和模式(Schema)是两个紧密相关却又鲜明不同的概念。用户是指拥有数据库权限和资源的实体,而模式则是指一组数据库对象的集合,包括表、视图、索引、同义词等等。 首先,从官方文档中...

    oracle hr schema

    这个schema包含了各种与员工、部门、职位等相关的信息,是初学者和专业人士了解Oracle数据库特性的实用工具。在建立Oracle HR Schema时,我们需要进行一系列的步骤,涉及到SQL脚本的执行和数据库对象的创建。 首先...

    最完整的Toad For Oracle使用手册

    - **Toad and Oracle Enterprise Manager**:介绍了Toad如何与Oracle Enterprise Manager集成,以便于更好地管理和监控Oracle环境。 #### 三、快速搜索与资源 - **Quick Search Bar**:通过快速搜索栏可以快速定位...

    oracle创建表,索引,表空间,触发器,schema用户,序列的Sql文

    5. **创建Schema用户**:Schema在Oracle中是逻辑上的数据库对象集合,通常与一个特定的数据库用户关联。使用`CREATE USER`创建用户,`GRANT`权限: ```sql CREATE USER MyUser IDENTIFIED BY password; GRANT ...

    SpringBoot整合Oracle数据库使用双数据源

    要整合SpringBoot与Oracle数据库,我们首先需要在项目中添加相应的依赖。在`pom.xml`文件中,你需要引入SpringBoot的Web和JPA依赖,以及Oracle JDBC驱动: ```xml <groupId>org.springframework.boot ...

    解析Oracle数据库中的对象集合schema

    在Oracle数据库中,Schema与用户(User)紧密相关,通常一个用户拥有一个唯一的Schema,用于存储该用户的数据库对象。 在Oracle中,Schema的创建通常是伴随着用户的创建一同进行的。当创建一个新用户时,Oracle会自动...

    Oracle 11g自带人事管理示例数据库(安装使用有详细说明)

    $ORACLE_HOME/demo/schema/human_resources/目录下。 2、在该目录下执行:sqlplus / as sysdba; 3、执行SQL>@hr_main.sql创建HR数据库。 1、使用管理者system身份登录,登陆成功后输入 alter user hr identified by...

    Postgresql连接oracle驱动并实现读写

    这种方式极大地扩展了PostgreSQL的功能,并提供了与Oracle数据库交互的能力,对于需要跨数据库平台工作的场景非常有用。需要注意的是,在实际部署过程中,可能还会遇到各种具体环境下的兼容性和配置问题,需要根据...

    Oracle.ManagedDataAccess.zip

    3. **Oracle.ManagedDataAccess.Client.Configuration.Section.xsd**:这是一个XML Schema定义文件,描述了Oracle Data Provider for .NET的配置节。在.NET应用的配置文件(如app.config或web.config)中,开发者...

    Mysql转oracle工具

    MySQL的`INFORMATION_SCHEMA`在Oracle中对应的是`DBA_`或`USER_`视图;此外,存储过程、触发器和函数的语法也有区别。 2. **数据类型转换**: 两个系统中的数据类型存在差异。例如,MySQL的`VARCHAR2`对应Oracle的...

    Oracle Security

    The User Interface: User Versus Schema Objects Tables Table Triggers Views Stored Programs Synonyms Privileges Roles Profiles Chapter 4 The Oracle Data Dictionary Creating and Maintaining ...

    数据库中的Schema和Database的区别

    在mysql中创建一个Schema和创建一个...  在sqlserver2000中,由于架构的原因,user和schema总有一层隐含的关系,让我们很少意识到其实user和schema是两种完全不同的概念,不过在sqlserver2005中这种架构被打破了,use

    查询一个Oracle表所占的物理空间大小

    在Oracle数据库中,`USER_TABLES`是一个非常重要的数据字典视图,它提供了用户拥有的所有表的信息。此视图包含了多个有用的列,如`TABLE_NAME`、`NUM_ROWS`、`AVG_ROW_LEN`等。其中: - `TABLE_NAME`: 表的名称。 -...

    oracle 9i 数据库备份与恢复过程说明

    impdp user/passwd directory=DATA_DIR dumpfile=backup.dmp logfile=impdp.log remap_schema=olduser:newuser ``` 4. **完全数据库恢复** - 在丢失所有数据文件或控制文件的情况下,需要使用全备和归档日志进行...

    oracle示例数据库OT_oracle数据库

    2. **ot_schema.sql**: "Schema"在Oracle中指的是一个命名空间,它包含了用户的对象,如表、视图、索引、存储过程等。`ot_schema.sql`是创建示例数据库架构的脚本。通过执行这个脚本,你可以创建出一套预先定义好的...

    Oracle默认账号信息

    了解这些默认账户的信息对于数据库管理员(DBA)来说至关重要,这不仅能帮助他们更好地管理数据库环境,还能确保系统的安全性与稳定性。本文将详细介绍Oracle数据库中的各种默认账号及其相关信息。 #### 二、Oracle...

    oracle 10g默认用户名、密码解锁

    - 参考资料: [Oracle Spatial User's Guide and Reference](https://docs.oracle.com/cd/B19306_01/spatial.102/b14034/toc.htm) 7. **MDSYS** - 用户名: `MDSYS` - 密码: 默认为空(建议修改) - 描述: Oracle...

    oracle示例数据库OT,oracle示例数据库 hr,SQL

    2. `ot_schema.sql`: "schema"在Oracle中是指一个逻辑结构,包含了一组相关的对象,如表、视图、索引等。`ot_schema.sql`可能包含了创建这些对象的SQL语句,如CREATE TABLE、CREATE INDEX、CREATE VIEW等,这为我们...

Global site tag (gtag.js) - Google Analytics