Oracle系列4Oracle 数据库的层次结构,常见的GUI连接用具

Posted 石头wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle系列4Oracle 数据库的层次结构,常见的GUI连接用具相关的知识,希望对你有一定的参考价值。

【Oracle系列4】Oracle 数据库的层次结构

mysql不一样,mysql连上后能看到所有库,库下面直接就是表了。

跟pgsql也不一样,pgsql连上后,也是可以看到所有库,库下面是schema,schema下面才是表(比mysql多了一层schema)。

Oracle是最复杂的,首先连进来的库叫什么名你都很难搞清楚,库下面也有schema,schema下面才是表。这么看起来跟pgsql是一样的,但真的复杂许多,详细的话后文介绍Oracle的时候会说明。

一、mysql的一些细节

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CeTpHIE7-1669631762993)(/Users/stonewang/Library/Application Support/typora-user-images/image-20221127210836152.png)]

二、PGSQL 的一些细节(postgresql的一些细节)

Navicat 截图如下:

pgAdmin 截图如下:

三、Oracle的一些细节

用Navicat连上后,可以看 ANONYMOUS等等一堆东西,这些东西究竟是什么?就是schema,其实也是User,你如果新建一个TEST01账号,登录后也会发现下图列表里多了TEST01,每创建一个用户就会有一个同名的schema与之对应。

你会疑惑:为什么Oracle权限控制不是很严很细吗?为什么我一个普通的test01账号也能看到别人的schema?

是的,是能看到别人的schema(间接等于知道这系统上有什么用户),但是这个用户能看到别人的schema并不一定能看到别人的表,要有权限,比如test01用户打开SCOTT显示一张表都没,而有权限的sys活system都可以点开后看得到。

补充:

不仅仅看不见,实际执行时没有权限也会报错的,如下图:

而有权限的就能查询

关于Navicat中选择schema的作用

四、补充:关于Oracle的图形化连接工具以及连接的一些选项

是所有当中最复杂最让人无语的,除了常规的用户名、密码、host、端口,还多了许多许多的选项

1、从 Navicat 这款软件查看还有其他什么登录选项
  • 总体的登录选项

  • 链接模式:有 Basic 和 TNS

  • Service Name 和 SID

  • Role有 sysdba 和 sysoper

  • OS authentication :勾选之后,账密就置灰了,应该是利用操作系统的鉴权方式

为什么允许登录系统后就登录数据库,处于这样的逻辑考虑吧?应该是考虑了 “既然你都有操作系统的登录权限了,那你可以登录装在这个操作系统上的数据库”


2、从SQL Developer 这款软件查看参数
  • 总体的登录选项

  • Database Type:只有一个Oracle的下拉框(难不成SQL Developer有意连接别的类型的数据库做妄想做全能连接器?)

  • Authentication Type:比navicat多了一个kerberos(Default就是账密,OS就是依靠操作系统鉴权)

  • Role:要比Navicat多多了

  • Connection Type:也要比Navicat多多了

  • 其他:比起Navicat还多了许多不明所以的登录选项


3、PL/SQL Developer (这个软件应该是要依赖于一些东西的,依赖Oracle散装的client吧?否则连配置tnsnames.ora的地方都没)

这个软件的登录选项非常少。你有没有想过为什么,笔者用了许久都没去想过这个问题,其实就是因为在本地配置了network\\admin\\tnsnames.ora 这个文件,文件里头就配了很多配置了。

其实上图中的Database下拉框里的值更加像connection名字,上述名字也不是数据库的真实名字,比如ZHANGSAN_TEST的真实数据库名字是TEST,所以这个仅仅是类似于 “连接名”

在哪里配置呢?

  • 手动添加,在一个配置文件中添加(我对此机翼很深),在Oracle安装目录下有个 network\\admin\\tnsnames.ora,是个文本文件
  • 通过oracle的图形工具(Oracle Net Configuration Assistant)添加:图形化工具,其实最终还是写入到上述配置文件,觉得没必要直接改即可

其实,上述都是使用PL/SQL Developer的时候才需要这么搞,如果你使用的是SQL Developer或者Navicat,都是页面上直接配置IP、端口、数据库名、账密等的,不需要多此一举还去一个文件里头加配置(更加直观好理解

可以选择连接为为什么角色。

以上是关于Oracle系列4Oracle 数据库的层次结构,常见的GUI连接用具的主要内容,如果未能解决你的问题,请参考以下文章

ora10,4oracle后台进程介绍:

4Oracle用户权限角色

4oracle表操作

Oracle教程-01

oracle ebs r12报告的Oracle flex值层次结构SQL查询

Oracle SQL 层次结构求和