Oracle 11g 数据库学习笔记
1 Oracle 11g简介
1.1 数据库基本概念
数据库 DB(database)
数据库管理系统 DBMS(DataBase Management System)
数据库管理员 DBA(Database Administrator)
Oracle数据库:相关操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,即为Oracle数据库。
Oracle实例:位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。Oracle 实例 = 进程+进程所使用的内存。
1.2 Oracle的7种服务
该节转自:详解Oracle的7种服务
通常安装Oracle后会在计算机服务里看到7个相关服务:
-
Oracle ORCL VSS Writer Service:
Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动) -
OracleDBConsoleorcl:
Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
这个就是在网页中输入 https://计算机全名:端口号(1158)/em 的时候,必须开启这个服务,才能够成功进入。 -
OracleJobSchedulerORCL:
Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动) -
OracleMTSRecoveryService:
服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动) -
OracleOraDb11g_home1ClrAgent:
Oracle数据库 .NET扩展服务的一部分。 (非必须启动) -
OracleOraDb11g_home1TNSListener:
监听器服务,服务只有在数据库需要远程访问的时候才需要。(可为必须启动,也可为非必须启动,详解见3) -
OracleServiceORCL:
数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
对新手来说,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
注:ORCL是数据库实例名,默认的数据库是ORCL,你可以创建其他的,即OracleService+数据库名。
1.3 Oracle操作工具
常用的Oracle操作工具有4种:第一种是Oracle自带的sqlplus命令行方式,第二种是Oracle自带的基于浏览器方式,第三种是Sql Developer工具,第四种是PLSQL Developer工具。
1.4 常用的sqlplus命令
connect
:切换连接用户
show user
:显示当前登录用户
host <dos命令>
:执行操作系统命令
spool
:导出记录到文本
clean screen
:清屏
start d:/test.sql
或@ d:/test.sql
:执行文件系统中的sql语句
desc
:显示表结构
show error
:显示错误信息
exit
:退出
2 Oracle的用户、权限、角色及表空间管理
2.1 Oracle的默认用户
Oracle数据库安装好后有三个默认的用户:
- 用户:sys 密码:install时自设
- 用户:system 密码:manager
- 用户:scott 密码:tiger
- sysman
- dbsnmp
相关介绍参看:Oracle数据库用户sys、system、sysman、scott、dbsnmp及权限分类说明
2.2 sqlplus用户登录
管理员登陆:sqlplus sys/oracle as sysdba
一般用户登录:sqlplus scott/tiger
切换的时候使用conn:conn sqlplus scott/tiger 或 conn sys/oracle as sysdba
2.3 表空间
数据库与表空间:表空间实际上是数据上的逻辑存储结构,可以把表空间理解为在数据库中开辟的一个空间,用于存放我们的数据库对象,一个数据库可以由多个表空间构成。
表空间与数据文件:表空间实际是由一个或多个数据文件构成的,数据文件的位置和大小可以由我们用户自己来定义。我们所创建的一些表啊,一些其他的数据对象都是存放在数据文件里的。那么数据文件是物理存储结构,真正可以看到的,而表空间是逻辑存储结构。
表空间一般分为3类:永久表空间,临时表空间,UNDO表空间
创建永久表空间:create tablespace test1_tablespace datafile 'test1file.dbf' size 10m;
创建临时表空间:create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10m;
2.4 Oracle的用户管理
创建用户语法:
CREATE USER [user_name]
IDENTIFIED BY [password]
DEFAULT TABLESPACE [default tablespace]
TEMPORARY TABLESAPCE [temporary tablespace]
查看创建用户:
SELECT username FROM dba_users;
给创建的用户授权:
GRANT [权限] TO [username];
连接(切换)用户:
CONNECT [username/password];
更改密码:
ALTER USER [username] IDENTIFIED BY [newpassword];
锁定用户:
ALTER USER [username] ACCOUNT LOCK;
删除用户:
DROP USER [username] CASCADE;
加cascade表示连同该用户创建的东西一起删除。
2.5 角色
Oracle角色就是一组权限(或者说权限的集合)。用户可以创建角色,并给角色赋予指定的权限,并将角色赋给相应用户,该用户就拥有了它所拥有的角色的权限。使用角色主要是为了更方便管理和使用权限。
常见的三种角色:
- CONNECT(连接角色):只可以登录数据库。
- RESOURCE(资源角色):只可以登录和创建实体。
- DBA(数据库管理员角色):拥有全部权限,可以创建数据库结构。
创建角色:
CREATE ROLE [角色名];
为角色赋予权限:
GRANT [权限] TO [角色名];
将角色赋予用户:
GRANT [角色名] TO [用户名];
收回用户的角色权限:
REVOKE [角色名] FROM [用户名];
删除创建角色:
DROP ROLE [角色名];
2.6 Oracle用户的权限管理
系统权限:允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。
对象(实体)权限:允许用户操作一些特定的对象,如读取视图,可更新某些列、执行存储过程等。
查询Oracle所有系统权限:select * from S