表空间
表空间是对Oracle数据库的逻辑划分,一个数据库有一个或多个表空间,一个表空间对应着一个或多个的物理数据库文件。Oracle数据库就相当于一个房子,而表空间就相当于房间中的一间屋子。
表空间可以用于区分应用程序与用户,并为其配置表空间的额度和控制其所占用的磁盘位置。
表空间的创建和分配需要由系统管理员来完成(system):
- 创建表空间
create tablespace user_space -- 表空间名
datafile 'D:\Data\Oracle\user_space2.dbf' -- 表空间地址
size 100m -- 表空间初始化大小
autoextend on -- 允许自增
next 20m -- 每次增加的大小
maxsize 1024m; -- 上限
- 创建临时表空间
临时表空间主要放置一些临时数据,临时表空间会自己删除(可以选择会话结束就删除)。
create temporary tablespace test_temp -- 表空间名
tempfile 'D:\Data\Oracle\test_temp.dbf' -- 表空间地址
size 128m -- 表空间初始化大小
autoextend on -- 允许自增
next 20m -- 每次增加的大小
maxsize 1024m; -- 上限
- 删除表空间
drop tablespace test_temp; -- 删除表空间,不删除文件
drop tablespace test_temp including contents and datafiles; -- 删除表空间,并删除文件
- 查询表空间
select t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) as ts_size -- 单位为 M
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
用户、角色和权限
用户就是数据库的使用者,比如我们就是淘宝用户:
- 创建用户
create user diz -- 用户名
identified by "123456" -- 密码
default tablespace user_space -- 指定表空间
temporary tablespace test_temp; -- 指定临时表空间
- 查询用户
select username from dba_users;
在Oracle中,如果每次新增一个用户都对其进行单独的授权操作的话,将会很麻烦。大部分时候,一些用户需要的权限是相同的,所以,可以把这些用户归为一类,就是角色。
将角色赋给一个用户,这个用户就拥有了这个角色中的所有权限,角色的出现就是为了简化授权操作:
- 创建角色
create role base_user;
- 将角色赋予某用户
grant base_user to diz;
- 查询角色
select role from dba_roles;
权限可以让某一用户拥有操作某项功能的权利。在Oracle中有系统权限和实体权限这两大类:
- 系统权限
权限名 | 描述 |
---|---|
DBA | 全部特权、系统最高权限、可以创建数据库结构 |
RESOURCE | 可以创建实体、不可以创建数据库结构 |
CONNECT | 可以登录Oracle、不可以创建实体、不可以创建数据库结构 |
-
实体权限
实体权限分为 select、 update、insert、alter、index、delete 和 all 等权限,all 为上述的所有实体权限。
为角色/用户赋予权限
grant connect to diz;
grant resource, connect to base_user;
grant create any table to diz;
grant all on table_name to base_user;
- 收回权限
revoke connect from diz;