3

创建一个新的数据库(基础和高级),这是我第一次接触Oracle,我不知道为什么在只想创建一个空的关系数据库时会有这么多的表、触发器、视图和其他对象。

有没有其他方法可以做到这一点,或者我错过了什么?

谢谢你。

捕获:

默认表

4

2 回答 2

5

这些对象归SYS用户所有。您可以使用以下查询验证它:

SELECT * FROM DBA_OBJECTS WHERE OWNER = 'SYS';

要查看其他用户拥有的对象,请参阅:

SELECT * FROM DBA_OBJECTS WHERE OWNER <> 'SYS';

您必须以SYS AS SYSDBA身份登录,因此能够查看 SYS 用户拥有的对象。

记住,

  • SYS/SYSDBA 是特殊的
  • 永远不要将 SYS(或 SYSDBA)用于一般数据库目的,而是用于管理/维护目的(启动、关闭、备份、恢复)
  • SYS/SYSDBA 是 Oracle 专有的(尝试打开以“我用 SYS/SYSDBA 完成的”开头的 SR/TAR,您会立即看到答案)
  • SYS/SYSDBA 与任何其他用户的行为不同
  • 当您使用 SYS/SYSDBA 时,Oracle 会停用某些代码路径并激活其他代码路径
  • 无论您对 SYS/SYSDBA 做什么,都不会对任何其他用户验证或使同一件事无效。

永远不要将 SYS/SYSDBA 用于其他用户可以完成的任何事情。仅将 SYS/SYSDBA 用于其他人无法完成的事情。

请参阅Tom Kyte 在 AskTom 上的答案

于 2015-10-12T06:14:15.717 回答
-1

美元符号 ($) 用于系统表。你需要假装你没有看到他们。他们实际上可能并不真正在那里。许多工具都有隐藏系统表和视图的选项。许多数据库(access、SQL Server、ORACLE)都有您不想看到的系统对象。

这实际上是 Bryce 和 Codds 对关系数据库的原始设计的一部分,以便您可以查询架构等。

于 2015-10-12T03:15:42.603 回答