一、Oracle11g 及 Client 客户端的安装和配置
连接之前,准备两样东西:
Oracle11g 和客户端 Client
Oracle11g 百度云链接,提取码:6qwbClient 客户端百度云链接,提取码:kbm2
考虑到安装也是一件麻烦事,推荐一个不错的安装教程。
不过人家最后用的可视化图形界面是 PL/SQL Developer,而我使用的是 Toad for Oracle。
这个教程非常的详细,唯一要注意一下的是Oracle客户端的配置问题:
几台电脑先后都使用 Net Configuration Assistant 进行过配置
但是,都出现一个错误:无监听程序,所以没有配置成功。
因此,我采用的都是手动添加 tnsnames.ora文件来进行配置的,配置文件如下:
# tnsnames.ora Network Configuration File: D:\Oracle\product\10.2.0\db_1\network\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
ORACLE11G =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oracle11)
(SID = oracle11)
)
)
新建记事本,将上面代码粘贴进去,另存,修改文件扩展名为 .ora。
显示文件扩展名方法如下:
WIN+R,输入control,进入控制面板,找到文件夹选项
将箭头所指的地方的"√"去掉即可。
将得到的 tnsnames.ora 文件粘贴到 D:\Oracle\product\10.2.0\db_1\network\ADMIN目录下即可。
(安装目录因人而异)
值得一提的是,Oracle从10开始,对 Windows 提供了 instantclient,也就是说,不用装客户端 Client,也能使用 PL/SQL Developer 或 Toad 连接数据库。
TOAD 连接 ORACLE 而不装 ORACLE 客户端的方法
按部就班,来到第二步。
二、下载安装 Toad for Oracle 13.0
主流工具之一,下载13.0足够了。
Toad for Oracle 13.0 百度云链接,提取码:wiro
值得注意的是,初次安装配置 Toad for Oralce 需要首先配置Oracle客户端环境变量。
设置环境变量:
右击——>我的电脑——>高级系统设置——>高级——>环境变量
系统变量——>新建
分别新建 TNS_ADMIN 、NLS_LANG、ORACLE_HOME 即可。
四、安装,配置完成后,启动连接
打开 Toad for Oracle,自动弹出 “数据库登陆” 窗口
如果在本机配置成功过,在 1 处下拉菜单会出现
在 2 处下拉菜单会出现
然后,user 和 password 使用超级管理员 sys + 密码,Connect as 设为 SysDBA
点击右下角Connect按钮, 连接至Oracle数据库。
注意: Toad确实允许您在“数据库登录”窗口中直接输入连接信息,但是此方法将强制您连接到数据库,并且只有在连接后才能输入一些其他连接信息。
要连接到Oracle Cloud Database,则必须使用“数据库登录”窗口创建和编辑数据库连接,以便通过建立SSH隧道然后通过隧道引导Toad连接来从Toad连接到云数据库。
创建或编辑连接:
1、选择 Session ——> New Connection
2、进入到 “ 数据库登陆” 窗口在 “数据库登录” 工具栏上,单击(Add Login Record)以创建连接记录
或者单击(Edit Login Record)以编辑现有记录。
3、添加登陆记录窗口
1处>填写要创建的 用户/架构 和 密码 字段2处>选择一种连接方式
3,4,5处>配置其余参数
6处>保存密码和自动登陆
连接成功,进入软件。
五、简单操作
(1)、点击左上角Schema Browser 按钮, 进入用户浏览器页面, 如图,出现用户下的所有表。
(2)、点击左上角 Editor 按钮,打开 SQL Style。
或者,Editor——>New Tab——>SQL Style
(3)、写一段查询语句,点击执行:三种方式:
—— F9是直接运行,环境变量套用toad自己的
—— F5是新开启一个session,并会调用glogin.sql来执行
—— ctrl+回车没用过,试了下,和F9一样的
执行结果如下:
六、正题——创建表空间、创建用户并指定该用户的表空间、授权
第一步:创建表空间
(1)创建永久性表空间
存储数据库对象,以及表数据。与临时表空间最大的区别是数据永久性,不会被系统自动清空。
create tablespace tf_test --表空间名
logging
datafile 'd:\oracle\oradata\orcl\tf_test.dbf' --数据存储地址
size 50m --初始大小
autoextend on --自动扩增
next 50m maxsize 20480m --50m的增,最大不超过20480m
extent management local; /*设置表空间的区管理为本地管理,
为的是减少分配extent的时候产生的内部递归sql
提高数据库分配空间的效率*/
(2)创建临时表空间
用作数据库运算过程中的数据存储,或临时表数据存储等。用完之后系统会自动清理。若不创建则使用系统默认的临时表空间TEMP。
create temporary tablespace temp1 --临时表名--
tempfile 'D:\oracle\oradata\orcl\temp1.dbf'
size 50m
autoextend on
next 32m maxsize 2048m
extent management local;
附录一:数据文件新增及修改
- 为表空间添加数据文件
当表空间对应的数据文件已经增长到上限值(自己设置的上限值,或者32g),此时则需要为该表空间新增一个数据文件。
ALTER TABLESPACE DB_DATA ADD DATAFILE 'd:\oracle\oradata\orcl\tf_test.dbf'
SIZE 50M
AUTOEXTEND ON NEXT 5M
MAXSIZE 100M;
- 已存在的数据文件属性修改
ALTER DATABASE DATAFILE 'd:\oracle\oradata\orcl\tf_test.dbf'
AUTOEXTEND ON NEXT 5M
MAXSIZE 100M;
- 已存在的数据文件大小调整
ALTER DATABASE DATAFILE 'd:\oracle\oradata\orcl\tf_test.dbf'
RESIZE 100M;
第二步:创建用户并指定表空间
sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限
system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限
登录系统用户(sys/system),创建一般用户。用户指定的profile是限制数据库用户使用资源的一种手段。
创建用户:
create user TFme identified by Tf2020 --设置用户名和密码
(1)指定表空间
DEFAULT tablespace tf_test; --指定到表空间
(2)指定到临时表空间
temporary tablespace temp1; --指定到临时表空间
第三步:给用户授予权限
oracle中权限分为系统权限和对象权限。可以直接授权,也可以通过授予角色得到角色的权限。对于表空间默认是无限额的,不建议让用户在其他表空间随意建表。一般授予
connect,resource即可。
--把角色授予用户,该用户也将拥有该角色的权限
grant connect to username; --连接数据库
grant resource to username; --创建数据库实体(表,过程等)
grant dba to username; --创建数据库结构
--针对表空间使用
grant unlimited tablespace to username; --用户可以再其他表空间随意建表,且无限额
--系统权限(此处列举几个)
grant create cluster to username;
grant create procedure to username;
grant create synonym to username;
grant create trigger to username;
grant create view to username;
grant create JOB to username;
grant drop any table to username;
--对象权限(此处列举几个)
grant delete any table to username;
grant update any table to username;
grant insert any table to username;
grant select any table to username;
附录二:删除
(1) 删除用户
注意,删除用户时,经常会碰到有人正在连接,无法删除。需要登录系统用户(sys/system)批量强制关闭连接。
--执行查询出来的内容即可
select 'alter system kill session' '' || sid || ',' || serial# || ''';'
from v$session
where username = 'XXX'; --填写需要删除的用户名
清除连接之后,就可以在sys用户下删除用户了,若用户下已存在对象,则需要带上 cascade,否则执行报错。
drop user XXX cascade;
(2) 删除表空间
--删除表空间
drop tablespace XXX;
--删除表空间同时删除对应的数据文件
drop tablespace XXX including contents and datafiles;
注意:以上脚本执行顺序:创建表空间–>创建用户。删除用户–>删除表空间。
我写的比较简便,推荐一位写的比较全面的:
oracle表空间 数据文件 用户的创建及删除
over.