【Oracle系列4】Oracle 数据库的层次结构,常见的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、端口、数据库名、账密等的,不需要多此一举还去一个文件里头加配置(更加直观好理解

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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值