安装使用
oracle数据库特点:支持多用户,大数据,更安全。
链接:https://pan.baidu.com/s/1Y5PwTg30ejggVVT9fmZgKw
提取码:rt85
Windows下CMD输入sqlplus / as sysdba ,提示进入数据库,则说明安装成功
而Linux下则是
su - oracle 进入oracle管理员
sqlplus / as sysdba 进入数据查询
sqlplus username/password 用账户密码连接
Oracle默认密码
oracle数据库默认有非常多的用户,例如HR,PM,因为oracle数据库是商用的,因此为了权限划分更加严谨,会有许多的账户,这些账户可能无用,可能有用。
用户名: internal 密码:oracle
用户名:system 密码:manager
用户名:sys 密码:change_on_install
scott / tiger 但是显示被锁定账户 需要超级管理员来解锁
体系架构
首先,要明白一个概念,Oracle数据库的组成实际是由ctl文件、log文件以及dbf文件这三类文件组成,先不要管这三个文件是干嘛的,首先Oracle需要通过这三类文件,来启动数据库。
实例:oracle数据库起来后,会在内存中划取一段仅仅属于oracle的内存空间,然后产生出一堆进程,我们把这堆进程和内存空间统称为实例,oracle实例是oracle数据库内存和进程的总称,如果你把数据库关闭,实例就没了。
而实际上,我们认为的传统数据库(数据)其实是一堆存储的硬盘里的资料,而也是的确如此。因此在oracle即有两个概念——实例和数据库。一般数据库和实例是1:1的关系,也有可能是1:2的关系
有两台服务器,一台存储。存储中放oracle数据库文件,每台服务器都装oracle数据库软件。每台服务器启动一个实例,两个实例都访问存储中的oracle,这就是1:2的关系一个数据库对应俩实例。两个实例同时都可以访问oracle数据库。
一个用户要访问数据库,它连接到的是实例,通过实例来访问数据库。
**表空间:**表空间是在数据库下面的一个概念。是oracle数据库逻辑下概念的划分,一个数据库在逻辑上被划分成一到若干个表空间,每个表空间包含了在逻辑上相关的一组结构。每个数据库至少有一个表空间。称之为system表空间。
1、一个数据文件只能属于一个表空间,数据文件(dbf,ora) 数据文件是数据库的物理存储单位
2、每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。
3、表空间是Oracle对物理数据库上相关数据文件(ORA或者DBF文件)的逻辑映射。
4、表空间与数据文件是一对多的关系(用户与表空间也是一对多的关系),而数据文件只能属于一个表空间,删除数据文件需先删除该文件所属的表空间。
5、表的数据(插入数据),是由用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或多个数据文件中(从逻辑插入,到实际落地文件)
用户:在大部分情况下,都是一个用户一般情况下对应一个数据库,因此你可以理解为用户是数据库的载体,例如当前MYSQL数据库下有N张表 <=> Oracle:当前用户下有N张表。
虽然有差别,但是你可以这么简单的理解。
2、oracle只有null,没有空""的概念
基本操作
熟悉一些基本的语法,会让你在内网渗透的时候,遇到oracle数据库弱口令或者获得翻配置文件获取到密码的时候起到非常重要的作用
连接数据库
show parameter servic 查看服务名
select global_name from global_name; 查看服务名
此外navicat还要配置对应版本的OCI文件才能连接成功
并且,使用普通综合版navicat进行远程连接的时候,还需要本地有oracle组件才能进行连接,不然会进行报错,所以oracle的连接是还是比较麻烦的。
因此建议在虚拟机装一个oracle环境吧。
创建表并插入数据的几个步骤
1、创建新的表空间
//datafile为自己安装oracle时的路径
create tablespace pentest
datafile 'C:\\app\\Administrator\\oradata\\orcl\\pentest.dbf'
size 100m
autoextend on
next 10m;
2、创建新用户并指定表空间给它: create user 用户名 identified by 密码 default tablespace 表空间表;
create user ice identified by a123456 default tablespace pentest;
GRANT UNLIMITED TABLESPACE TO ice;
GRANT CONNECT TO ice;
GRANT DBA TO ice;
GRANT RESOURCE TO ice;
3、单纯的创建新用户
create user iiice identified by a123456; 创建账户iiice 密码a123456
grant dba to iiice; 赋予 topsec dba权限
grant create session to iiice 赋予远程连接权限
4、创建表并插入数据(上面的是表空间)
create table users(
id number(10),
name varchar2(16),
pwd varchar2(32));
insert into users (id,name,pwd) values(1,'admin','ab71giedas98g1o2dasgd12e98g');
Commit (不然插入后,下次再打开就没了)
5、删除表(但是实际文件还存在,逻辑上的表没了)
drop tablespace pentest;
查看连接是否开着(是否有服务器连接)
select status from v i n s t a n c e ; 一般为 O P E N < b r / > ∗ ∗ 查看所有用户 ∗ ∗ < b r / > s e l e c t ∗ f r o m u s e r u s e r s ; < b r / > ∗ ∗ 查看当前版本 ∗ ∗ < b r / > S E L E C T ∗ f r o m v instance; 一般为OPEN<br />**查看所有用户**<br />select * from user_users; <br />**查看当前版本 **<br />SELECT * from v instance;一般为OPEN<br/>∗∗查看所有用户∗∗<br/>select∗fromuserusers; <br/>∗∗查看当前版本∗∗<br/>SELECT∗fromvversion;
SELECT banner from sys.v_ v e r s i o n w h e r e r o w n u m = 1 ; < b r / > ∗ ∗ 查看当前用户是谁 ∗ ∗ < b r / > s h o w u s e r < b r / > s e l e c t u s e