为什么许多表ORACLE默认12c?

时间:2015-10-12 02:44:19

标签: database oracle database-administration oracle12c sysdba

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

还有另一种方法可以做到这一点,还是有一些我错过的东西?

谢谢。

捕获

default tables

2 个答案:

答案 0 :(得分:4)

这些对象归 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专有的(尝试打开SR / TAR,首先是“我用SYS / SYSDBA做了”,你会立即看到答案)
  • SYS / SYSDBA与其他任何用户不同,
  • 使用SYS / SYSDBA时,Oracle会停用某些代码路径并激活其他代码
  • 无论您使用SYS / SYSDBA做什么,都不会对任何其他用户进行验证或使其无效。

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

请参阅Tom Kyte在AskTom上的this回答。

答案 1 :(得分:-1)

美元符号($)用于系统表。你需要假装你没有看到它们。他们身体上可能并不真的存在。许多工具都可以选择隐藏系统表和视图。许多数据库(访问,SQL Server,ORACLE)都有您不想看到的系统对象。

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