创建表空间和用户
表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间
每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。
表空间的大小等于构成该表空间的所有数据文件大小之和。
默认包含如下表空间(从v$tablespace中查看):SYSTEM、SYSAUX、TEMP、UNDOTBS1、USERS
SYSTEM是系统表空间,存放系统的最基本的信息,如果SYSTEM表空间坏掉,Oracle将无法启动。
SYSAUX从10g中引入,作为SYSTEM的辅助表空间,用以减少SYSTEM表空间的负荷 。以前其他表空间中的一些组件,现在放到SYSAUX表空间中了
TEMP是临时表空间,当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在Oracle实例中的临时表空间中进行。
UNDOTBS1是撤销表空间,是UNDO类型的表空间,保存用户进行DML操作中,修改前的数据。
USERS是数据库默认的永久表空间。
查询当前用户默认表空间
select default_tablespace from user_users;
登录sys 创建表空间
创建表空间:
create tablespace tablespace_name
datafile '表空间文件路径'
size 1G autoextend on next 100M
maxsize unlimited;
create tablespace:创建表空间关键字
tablespace_name:表空间名称 字母数字_$ 标识符 30个字符
datafile:指定表空间文件(一般指向oracle安装根目录下oradata/数据库实例名/.dbf)
size 1G:指定表空间文件的初始大小,大小单位可以是G、M、K等
autoextend on next 100M:autoextend表示表空间大小自动扩展,on next 100M指定每次表空间满了之间扩展的大小
maxsize unlimited:maxsize指定表空间的最大存储值,unlimited表示不限制表空间的最大值(也就是只要硬盘不满,表空间就可以一直扩展)
创建一个test1的表空间(必须使用管理员用户system, sys )
create tablespace test1
datafile 'D:\app\Administrator\oradata\orcl\test1data.dbf'
size 1G
autoextend on next 100M
maxsize unlimited;
--修改表空间物理文件的大小
ALTER DATABASE
DATAFILE 'D:\app\Administrator\oradata\orcl\test1data.dbf' AUTOEXTEND
ON NEXT 200M MAXSIZE 2G
--修改原有的数据文件大小
alter database datafile 'D:\app\Administrator\oradata\orcl\test1data.dbf' resize 100M;
--为表空间增加新的数据文件
alter tablespace 表空间名 add datafile 数据文件 size 大小
临时表空间
当排序不能在分配的空间中完成时,就会使用磁盘排序的方式,即在Oracle实例中的临时表空间中进行。
创建临时表空间语法:
create temporary tablespace tablespace_name tempfile '表空间文件路径' size 1G autoextend on next 100M maxsize unlimited;
temporary:表明创建的表空间是临时表空间
tempfile:指定临时表空间文件
创建临时表空间(用管理员用户)
create temporary tablespace test1temp
tempfile 'D:\app\Administrator\oradata\orcl\test1temp.dbf'
size 1G autoextend on next 100M maxsize unlimited;
创建用户语法:
create user 用户名 default tablespace tablespace_name temporary tablespace temptablespace_name identified by密码;
create user:创建用户关键字
user_name:用户名 字母数字_$
default tablespace tablespace_name:指定用户的默认表空间 tablesapce_name表空间名(如果省略默认使用users表空间)
temporary tablespace temptablespace_name:指定用户的默认临时表空间,temptablespace_name临时表空间名(如果省略默认使用temp表空间)
identified by password:identified by 指定用户的密码,password用户密码
创建一个test1用户
create user test1
default tablespace test1
temporary tablespace test1temp
identified by test1;
修改用户
alter user user_name default tablespace tablespace_name temporary tablespace temptablespace_name identified by password;
权限
权限指的是执行特定命令或访问数据库对象的权利
权限有两种类型,系统权限和对象权限
系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限
对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作
GRANT 命令可用于为用户分配权限或角色
系统权限如:
GRANT CREATE SESSION TO test1; --此系统权限允许用户连接到数据库上
GRANT CREATE TABLE TO test1; --此系统权限允许用户创建表
UGRANT UNLIMITED TABLESPACE TO test1; --此系统权限允许test1用户任意使用表空间
对象权限如:
GRANT SELECT ON SCOTT.EMP TO test1; --允许用户查询 EMP 表的记录
GRANT UPDATE ON SCOTT.EMP TO test1; --允许用户更新 EMP 表中的记录
GRANT ALL ON SCOTT.EMP TO test1; --允许用户插入、删除、更新和查询 EMP 表中的记录
角色管理
角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。
GRANT CONNECT TO test1; --CONNECT角色允许用户连接至数据库,并创建数据库对
GRANT RESOURCE TO用户名; --RESOURCE角色允许用户使用数据库中的存储空间
GRANT CREATE SESSION TO test1; --此系统权限允许用户连接到数据库上
查看角色(只能查看登陆用户拥有的角色)所包含的权限
select * from role_sys_privs;
给用户赋权限
grant connect,resource to test1;
revoke 收回权限
删除用户
drop user用户名;
删除表空间
drop tablespace表空间名;