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

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

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

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

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

一、mysql的一些细节

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第1张图片

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

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

Navicat 截图如下:

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第2张图片

pgAdmin 截图如下:

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第3张图片

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第4张图片

三、Oracle的一些细节

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

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

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第5张图片

补充:

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第6张图片

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第7张图片

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第8张图片

而有权限的就能查询

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第9张图片

关于Navicat中选择schema的作用

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第10张图片

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第11张图片

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第12张图片

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第13张图片

在这里插入图片描述

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

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

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

  • 链接模式:有 Basic 和 TNS

在这里插入图片描述

  • Service Name 和 SID

    在这里插入图片描述

  • Role有 sysdba 和 sysoper

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第14张图片

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

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第15张图片


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

    【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第16张图片

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

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

    【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第17张图片

  • Role:要比Navicat多多了

    【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第18张图片

  • Connection Type:也要比Navicat多多了

    【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第19张图片

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

    【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第20张图片


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

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第21张图片

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

在哪里配置呢?

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第22张图片

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

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

【Oracle系列4】Oracle 数据库的层次结构,常见的GUI连接用具_第23张图片

你可能感兴趣的:(数据库,oracle)