Oracle 表空间、用户、角色和权限基本操作

表空间

表空间是对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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容