用户与表空间
登录
系统用户
- sys,system sys用户权限高于system
- sysman 用户操作企业管理器
- scott
使用系统用户登录
- 用户登录
[username/password] [@server] [as sysdba|sysoper]
在登陆之后可以使用
connect [username/password] [@server] [as sysdba|sysoper]
来切换登录用户。
查看登录用户
查看当前登录用户
show user
dba_user数据自字典,可使用desc命令查看其中包含的内容。在这个数据字典中可以查看dba都包含哪些用户。
启用与锁定用户
- 启用或锁定用户的语句
alter user username account [unlock|lock];
其中的“username”是你要启用的用户名,后面的unlock表示启用这个用户,lock表示锁定这个用户。
表空间
表空间和数据库的关系
表空间是数据库存储的逻辑空间,可以理解成在数据库中开辟的一个空间,在其中存数数据库对象。一个数据库可以有多个表空间。
表空间和数据文件的关系
表空间是由一个或多个数据文件来构成的,数据文件的大小和位置可以由用户自己来定义。在系统中,我们建立的数据库、表、表空间等都是存放在数据文件中的。
表空间的分类
- 永久表空间
数据库中表、视图、存数过程等都是存储在永久表空间中。 - 临时表空间
主要用户存储数据库操作中中间执行的过程,当执行结束之后存放的内容会被自动释放。 - UNDO表空间
用于保存事物所修改的旧值,当我们对一张表进行修改的时候这里会保存修改之前的数据,以便于我们对其进行回滚操作。
查看用户的表空间
dba_tablespaces、user_tablespaces数据字典
dba_tablespaces针对系统管理员级别的用户来查看的数据字典,user_tablespaces是针对普通用户来查看的数据字典。
- SYSTEM 表空间,用于存放sys用户的表、视图以及存储过程,也被称为系统表空间。
- SYSAUX 表空间,作为example表空间的辅助表空间。
- EXAMPLE 表空间,用户安装oracle 11g实例的表空间
- UNDOTBS1 表空间,用户存储撤销信息,属于UNDO类型的表空间。
- TEEMP 表空间,用户存储sql语句处理的表和索引信息的临时表空间。
- USERS 表空间,用于存储数据库用户创建的数据库对象,和SYSTEM表孔家差不多,只不过SYSTEM是用于存储系统信息的。
dba_users、user_users数据字典
每一个用户下面都对应着默认表空间和临时表空间,默认情况下只有一个临时表空间TEMP,如果另外需要则需要自行创建。
设置用户的默认表空间或临时表空间
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name
创建表空间
创建语句
CREATE [TEMPORARY] TABLESPACE tablespace_name TEMPFILE|DATAFILE 'xx.dbf' SIZE xx
dba_data_file数据字典
存放表空间文件的信息。
创建一个临时表空间
查看dba_data_files数据字典的结构
根据表空间名称查看该表空间的文件名(表空间的名字要大写)
临时数据字典是dba_temp_files,使用同上。
修改表空间
修改表空间的状态
设置表空间的联机或脱机状态
ALTER TABLESPACE tablespace_name ONLINE|OFFLINE;
做一个测试
在dba_tablespace数据字典中查看表空间的状态
设置制度或可读写状态
ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE
同样在dba_tablespace数据字典中查看该表空间信息。
修改数据文件
增加数据文件
ALTER TABLESPACE tablespace_name ADD DATAFILE 'xx.dbf' SIZE xx;
删除数据文件
ALTER TABLESPACE tablespace_name DROP DATAFILE 'filename.dbf';
在删除表空间数据文件的时候不能删除表空间中的第一个数据文件,如果要删除的话就要把整个的表空间删除掉。
删除表空间
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS];
如果只需要删除表空间而不需要删除表空间文件,只需要中括号之前的;