Oracle各种连接和连接配置

      • 1.Oracle自带SQL plus工具的使用
      • 2.Navicat连接Oracle
      • 3.SQL Developer连接Oracle
      • 4.Oracle表空间
        • 4.1永久表空间
        • 4.2临时表空间
      • 5.SQL Developer创建用户与连接
      • 6.SQL Developer权限说明

1.Oracle自带SQL plus工具的使用

    前面提到,安装程序的时候选择是桌面类,因此自带了一些管理软件,比如自带了Oracle数据库的数据库管理工具:SQL plus,使用方式,直接打开在windows菜单找到SQL plus就行:

使用方法和mongoDB、mysql等数据库一致(说白了就是用黑窗口管理):

说明:这里具有密码拦截,密码默认为装环境的时候使用的密码。
使用举例如下:

select * from all_users;//查询所有数据库用户

及如果如下:

内部展示还是比较乱的,不采用表格形式。
需要补充说明的是,对于sys类型的用户,连接的时候需要指定具体的数据库管理员类别:

2.Navicat连接Oracle

    Navicat能够连接很多种数据库,能够便于我们管理很多个不同种类的数据库。连接方式如下:

说明:这里使用的连接方式还是有一定缺陷的,比如使用sys as sysdba的方式连不上去。端口使用的是1521(默认端口),而且里面的可视化功能体现的不够充分,但是至少可视化能力比SQL plus更强:

3.SQL Developer连接Oracle

下载SQL Developer,下载的时候可能会提示导入首选项,如果之前没有使用过,直接点击否可以继续安装,安装完成时候界面如下:

简单来说,界面不太美观,但是感觉对于Oracle这款数据库来说还是相对比较专业的。使用起来比较简单:

简单看一下,从左侧功能列表来看,功能还是比较全面的:

说Navicat连接Oracle的功能不全面,主要是因为Navicat里面只包含数据库对应的数据表,内部缺少创建用户等诸多管理功能,当然这个是建立在SQL指令不够熟悉的情况下:

SQL查询的简单使用:

4.Oracle表空间

    经过前面的分析,可以知道SQL Developer还是比较好用的,除了界面UI有待美化外,功能还是比较强大的,有点像SQLServer。接下来言归正传,说一下Oracle的表空间概念。

4.1永久表空间

    表空间其实是对数据库在逻辑层上面的一种划分(可以理解成对内存的分块)。一个表空间对应一个数据库。所有的数据库对象都存在指定的表空间里面,由于数据库对象里面主要存储的还是表,因此又被称为表空间。

4.2临时表空间

    Oracle的临时表空间主要用来做查询和存放数据缓冲区,这些缓冲区一般用来进行查询结果的排序操作。重启数据库能够释放这些临时表空间。
最后给出一个表空间的创建方式(Oracle SQL语句不区分大小写,SQL Developer能够给出比较多的友好提示,默认这些提示都会大写):

create TABLESPACE test datafile 'D:\Oracle\app\oradata\oracle\test.DBF' size 15M AUTOEXTEND on next 10M;
//这里表示的是创建一个初始大小为15M,超过以10M自增的永久表空间(其实和SQL Server比较像)

创建结果如下:

在创建用户的时候这里就会出现对应刚才新建的永久表空间:

5.SQL Developer创建用户与连接

    上面已经创建了一个Oracle的表空间了,这里再来创建一个用户。首先需要明确一点,创建用户需要有system权限。这里说的更详细就是sysdba和system,sysopr没有创建表空间一级用户的权限。为了印证前面提到的权限问题,展示对比结果如下:

sysopr的权限还是比较低的,除了不能创建用户,甚至连表都不能创建:

    明白了这些内部的权限问题之后,也就是只有system或者sysdba能够创建用户。右键其他用户->点击创建用户->输入用户名和密码->选择用户对应的表空间,上方菜单找到授予的角色,勾上connect(表示赋予连接权限),菜单里面的SQL可以查看对应的SQL指令的书写方式。创建示例如下:

    接下来是连接数据库,实例如下:

特别说明:
(1)这里在创建用户的时候需要使用大写的用户名,这是由于Oracle默认将会把用户名转化成大写的用户名,如果你这里使用小写创建的,之后又使用大写的用户名去连接对应的表空间,将导致连接显示用户名或者密码错误;
(2)对于sid和服务名的说明,sid是每一个数据库连接时候自动创建的实例标识,每次创建都不一样,但是如果是使用服务名,这个就是唯一的。网上有大佬举例,sid相当于对内,服务名相当于对外,检测登录的时候相当于有个门卫,如果你说找某个部门(服务名),那么就能进入,如果你说找该部门的某个员工(sid),但是由于这个sid我们一般是不清楚的,一般就会被拒绝。

6.SQL Developer权限说明

    如果使用上面的TEST直接创建数据表,肯定会直接报错:

原因很简单,连连接数据库都需要去分配权限,创建数据表这样的操作更需要分配。解决方法:在sysdba或者system里面找到刚创建的TEST用户->右键编辑用户->上方菜单找到系统权限,勾上create table(表示赋予创建表权限),实例如下:

紧接着又报错,提示表空间无权限(可见Oracle的权限分配还是比较严格的):

和上面一样,上方菜单找到限额,然后分配表空间大小(或者直接不限制表空间大小):

然后在创建就能够创建成功了。假如之后出现其他报错就一样了,直接根据提示分配对应权限就行。

更多推荐

Oracle入门笔记(二)——SQL Developer的基本使用