oracle schema objects 模式对象

本文深入探讨了Oracle数据库中的Schema定义,解释了Schema与数据库用户的同义性,并详细介绍了Schema对象的组成,包括段对象和非段对象,如表、索引、约束、视图等。同时,文章还讨论了Schema的存在依赖于用户下是否存在对象,以及如何通过OEM观察这一现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

schema是特定用户拥有的数据库对象的集合,schema和数据库用户有相同的名字,因此两个术语是同义的(synonymous)

schema objects包含你在表空间中看到的段(表,索引等),也包含用户拥有的非段的数据库对象。这些非段对象包括约束、视图、同义词、过程和包。

不被用户拥有的数据库对象包括角色、表空间和目录就不是模式对象(schema objects)。

来自《Sybex OCA Oracle 10g Administration I Study Guide 1Z0-042(2004).pdf》

oracle中的schema就是指一个用户下所有对象的集合,schema本身不能理解成一个对象,oracle并没有提供创建schema的语法,schema我自己理解也并不是在创建user时就创建,而是在该用户下创建第一个对象之后schema也随之产生,只要user下存在对象,schema就一定存在,user下如果不存在对象,schema也不存在;这一点类似于temp tablespace group,另外也可以通过oem来观察,如果创建一个新用户,该用户下如果没有对象则schema不存在,如果创建一个对象则和用户同名的schema也随之产生。。。如果此时把对象删除,schema是否还存在,这一点需要验证一下。。。没有oem,无法验证。

来自《itpub》

### 查看 Oracle 数据库用户对应的 SchemaOracle 数据库中,用户与 Schema 的关系紧密相连。每个用户通常对应一个 Schema,且该用户的 Schema 名与其用户名相同,并作为其默认 Schema[^1]。 为了查询特定用户所拥有的 Schema 或者验证用户与 Schema 的关联情况,可以利用数据字典视图 `ALL_USERS` 和 `DBA_SCHEMAS` 来获取这些信息: #### 使用 SQL 查询用户及其对应的 Schema 可以通过执行如下 SQL 命令来查看现有用户以及它们各自的 Schema: ```sql SELECT USERNAME AS "User", DEFAULT_TABLESPACE AS "Default Tablespace" FROM DBA_USERS; ``` 上述命令会返回所有用户的列表连同他们的默认表空间名称。由于每个用户的 Schema 名就是其用户名,因此这里展示的就是各用户的 Schema 信息[^2]。 如果想要更详细的了解某个具体用户拥有哪些对象(即属于该用户的 Schema 中的对象),则可进一步查询 `ALL_OBJECTS` 视图: ```sql SELECT OWNER, OBJECT_TYPE, COUNT(*) FROM ALL_OBJECTS WHERE OWNER = '指定的用户名' GROUP BY OWNER, OBJECT_TYPE; ``` 这段代码将统计出由给定用户名下的各种类型的数据库对象数量,从而帮助确认该用户确实控制着相应的 Schema 及其中的内容[^3]。 对于管理员权限较高的账户来说,还可以直接访问 `DBA_SCHEMAS` 视图以获得整个数据库内所有的 Schemas 列表: ```sql SELECT SCHEMA_NAME FROM DBA_SCHEMAS; ``` 这条指令能够列出系统中存在的每一个 Schema,包括那些可能不属于任何实际登录账号的情况——尽管这种情况较为罕见[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值