本文针对Oracle的体系结构、数据库实例、表空间、用户等进行简单的介绍。
对数据的可靠性、大量性、持久性、共享性提供了一套可靠的解决方案、而且可以轻松支持多用户、大事务量的事务处理。
优点: 可用性强、可扩展性强、稳定性高。
Oracle 数据库实际上是一个数据的物理存储系统,包括数据文件(ora/dbf)、参数文件、控制文件、联机日志文件等。
查询当前数据库名:
select name from v$database;
官方描述: 实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存所构成一个集合。
其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象一样。
实例名指的是用于响应某个数据库操作的数据库管理系统的名称。它同时也叫SID。实例名是由参数instant_name决定的。
查询当前数据库实例名:(一般为orcl)
select instance_name from v$instance;
数据库实例名(instance_name)用于对外部连接。
在操作系统中要取得与数据库的联系,必须使用数据库实例名。
比如我们做开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
一个数据库可以有多个实例,在做数据库服务集群的时候可以用到。
Oracle 数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
有了数据库,就可以创建表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。
例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
创建表空间语法:
create TableSpace 表空间名称
DataFile 表空间数据文件路径
Size 表空间初始大小
Autoextend on
如:
create tablespace db_test
datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf'
size 50m
autoextend on;
查看已经创建好的表空间:其中dba_users表示所有的数据库用户
select default_tablespace, temporary_tablespace, d.username from dba_users d
查看oracle中当前已创建的表空间:
select file_id,tablespace_name from dba_data_files;
查看oracle中当前已创建的目录:
select * from dba_directories;
Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。
上面我们建好了数据库和表空间,接下来建用户:
创建新用户:
CREATE USER 用户名
IDENTIFIED BY 密码
DEFAULT TABLESPACE 表空间(默认USERS)
TEMPORARY TABLESPACE 临时表空间(默认TEMP)
如:
create user fqaca
identified by fqaca
default tablespace fqaca
temporary tablespace fqaca_temp;
(临时表空间不能与表空间相同,需要另外创建一个临时表空间如fqaca_temp)
有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:
角色:
GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。
--GRANT 对象权限 on 对象 TO 用户
grant select, insert, update, delete on JSQUSER to STUDENT;
--GRANT 系统权限 to 用户
grant select any table to STUDENT;
取消用户权限:
-- Revoke 对象权限 on 对象 from 用户
revoke select, insert, update, delete on JSQUSER from STUDENT;
-- Revoke 系统权限 from 用户
revoke SELECT ANY TABLE from STUDENT;
-- Revoke 角色(role) from 用户
revoke RESOURCE from STUDENT;
其他操作:
--修改用户信息
alter user STUDENT
identified by ****** --修改密码
account lock;--修改用户处于锁定状态或者解锁状态 (LOCK|UNLOCK )
查看数据库用户:
select * from dba_users;
有了数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。
一个表空间可以对应多个用户
一个用户只能对应一个表空间