一、启动的服务
1.oracle核心服务——OracleServiceORCL
2. oracle监听服务——OracleOraDb11g_home1TNSListener
3.oracle数据库工作日程调度(没有工作日程安排不用启动,占资源)——OracleJobSchedulerORCL
二、Sql Server与Oracle最大的不同
1. SQL SERVER 号称百万级数据(一个表的数据),但是其实做多20万条数据,超过20万条数据就用Oracle;
2. Sql中可以随时随意的创建数据库;但Oracle只有一个数据库,一台电脑只会安装一个数据库,Oracle只有账户。
三、账户、表空间、数据库、表空间
1. 关系
案例:两个同学创建2个不同的数据库
这两个同学都要在Oracle中找自己的数据库,刚说了一个Oracle只有一个数据库,怎么办?为两个同学各创建一个账户,给
账户开辟数据库空间----表空间(TableSpace)。
表空间代替了Sql里面的数据库,创建数据库就是开辟账户空间。
注意:Oracle为A账户开辟个空间,为B账户开辟个空间,请问A和B是不是在用同一个数据库?不同账号之间能不能互访?
答:A和B在同一个数据库;但是不能互访,除非开了访问权限
2. 数据库
Oracle数据库是数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库,它包含物理数据、数据库管理系统(也即物理数据、内存、操作系统进程的组合体)。可以看作是Oracle就只有一个大数据库。
查询当前数据库名:select name from v$database; (本人返回JANET)
注:使用SQLplus时,在终端输入sqlplus或者直接在搜索栏输入sqlplus(后者是调出sqlplus桌面应用)——>输入用户名密码——>成功后回车,即可输入sql语句,必须使用;作为结束符。
3、数据库实例
一个Oracle实例(Oracle Instance)有一系列的后台进程(Backguound Processes)和内存结构(Memory
Structures)组成。
一个数据库可以有n个实例。
用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的
内存(SGA)所构成一个集合。其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象
一样。我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可
用的错误。
实例名指的是用于响应某个数据库操作的数据库管理系统的名称。它同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:select instance_name from v$instance;
数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作
开发,要连接数据库,就得连接数据库实例名:
jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)
一个数据库可以有多个实例,在作数据库服务集群的时候可以用到。
4、数据文件
数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,实际真正存储在某一个或者多个数据文件中。而一
个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不 能删
除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。
5、表空间
表空间是一个用来管理数据存储逻辑概念,表空间只是和数据文件(ORA或者DBF文件)发生关系,数据文件是物理的,一
个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。有了数据库,
就可以创建表空间。
表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效
率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表
空间只能属于一个数据库。
①基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间。
②创建表空间的语法:create tablespace 表空间名
创建表空间语法:
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;
查看已经创建好的表空间:select default_tablespace, temporary_tablespace,d.username from
dba_users d;
查看当前用户的缺省(默认)表空间:select username,default_tablespace from user_users;
6. 用户
Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。
用户是在实例下建立的。不同实例可以建相同名字的用户。
上面我们建好了数据库和表空间,接下来建用户:
创建新用户:
CREATE USER 用户名
IDENTIFIEDBY 密码
DEFAULT TABLESPACE 表空间(默认USERS)
TEMPORARY TABLESPACE 临时表空间(默认TEMP)
如:
CREATE USER utest
IDENTIFIED BY utestpwd
DEFAULT TABLESPACE db_test
TEMPORARY TABLESPACE temp;
(这里临时表空间不能使用我们创建的db_test,不指定也可以默认是temp)
有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:
GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。
查看数据库用户:select * from dba_users;
四、给表空间分配账户,给账户角色授权
1.首先创建账户,指定访问表空间,但是未给它赋值任何权限,登录时是等不了的!
Create user 用户名
identified by 密码
Default tablespace 表空间 --指定该用户管理的表空间
案例:
create user u_dml
identified by 123
Default tablespace ts_1
2.给账户授予角色(注意需把账户和角色分清楚)
角色:李鹏飞是个学生 角色:学生
账户:李鹏飞是个学生 账户:李鹏飞
角色分类:
Connect:临时用户角色
Resource:正式用户角色
DBA:管理员(一般不用)
授予角色:
Grant connect , resource to 账户
撤销角色:
Revoke connect,resource from 账户
删除(撤销)用户:
DROP USER 用户名
DROP user 用户名 CASCAED
--CASCAED表示删除用户的同时删除其建立的实体
操作授权:
案例:将查询scott用户的stu表的权限授予test用户
Grant select on scott.stu to test
热门工具 换一换