表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表,所以称作表空间。
Oracle中很多优化都是基于表空间的设计理念而实现的,一个数据库可以包含多个表空间,一个表空间只能属于一个数据库。一个表空间包含多个数据文件,一个数据文件只能属于一个表空间。
Oracle 数据库中至于存放一个表空间,即SYSTEM的表空间。
控制用户所占用的表空间配额
控制数据库所占用的磁盘空间
灵活放置表空间,提高数据库的输入输出性能。
大表的排序操纵
系统中默认创建的几个表空间
SYSTEM
SYSAUX
USERS
UNDOTBS
EXAMPLE
TEMP
查询所有的表空间
select * from V$tablespace
查看表空间的数据文件
select file_name,tablespace_name from dba_data_files
查看用户的默认表空间
select default_tablespace,temporary_tablespace from dba_users where username='用户名';
查看指定表空间有哪些表
select table_name,tablespace_name from dba_tables where tablespace_name='表空间名称'
create tablespace test_data datafile 'test_data.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local
create temporary tablespcae test_temp tempfile 'test_temp.dbf' size 32M autoextend on next 32M maxsize 2048M extent management local
drop tablespace 表空间名 including contents and datafiles
create user 用户名 identified by 密码 default tablespace 默认表空间 temporary tablespace 临时表空间
一个用户可以使用一个或者多个表空间,一个表空间也可以供多个用户使用。
用户和表空间没有隶属关系,表空间是一个用来管理存储数据的逻辑概念,表空间只是和数据文件发生关系,数据文件是物理的,一个表空间可以包含多个数据文件,而一个数据文件只能隶属一个表空间。
查看用户默认表空间
select username,deafult_tablespace from dba_users where username='用户名'
查看当前用户拥有的表
select table_name from user_tables
系统权限
系统规定用户使用数据库的权限。(系统权限是对用户而言)。系统权限只能由DBA用户授出
最开始就是这两个用户(sys,system)
对象权限
某种权限用户对其他用户的表或者视图存取权限。(是针对表或视图而言)
允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等。
dba角色: 拥有全部特权,是系统最高权限。
resource角色:拥有resource权限的用户只可以访问数据库对象。
connect角色:拥有connect权限的用户只可以登录Oracle,不可以访问数据库对象
注意:以上都是角色,不算单个权限,算是一群权限的集合。
查看所有系统权限
SELECT * FROM SYSTEM_PRIVILEGE_MAP
允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等
select, update, insert, alter, index, delete, all …… //all包括所有权限
execute //执行存储过程权限
系统权限
grant 系统权限 to 用户名 [WITH ADMIN OPTION] grant connect, resource to 用户名;
对象权限
grant 对象权限 on 对象 to 用户 [WITH GRANT OPTION] grant select, update, insert on product to 用户名; grant all on product to 用户名; // all 表示全部对象权限 grant all on product to 用户名; // public表示是所有的用户
撤销系统权限
revoke 系统权限 from 用户; revoke resource from 用户名;
撤销对象权限
revoke 对象权限 on 对象 from 用户 revoke select, update on product from 用户
角色就是一组权限(privilege),更加方便对权限进行管理,每种角色都用于执行一些特定的管理任务。
创建角色/删除角色
create role 角色名 / drop role 角色名
给角色授权
系统权限: grant 系统权限 to 角色 对象权限: grant 对象权限 on 对象 to 角色
撤消角色权限
revoke 系统权限 from 角色 revoke 对象权限 on 对象 from 角色
查看当前用户所有系统权限
select * from user_sys_privs
查看当前用户所属角色
select * from user_role_privs
角色有哪些系统权限
select * from role_sys_privs
角色有哪些对象权限(sys用户下)
select * from role_tab_privs
用户有哪些对象权限
select * from user_tab_privs