Oracle的SQL基础之用户与表空间

前排提示:数据库对象不理解的,可以查看我的关于数据库对象的博文

1.用户

1.1四个系统默认用户

Oracle的安装完成会产生四个系统默认用户,其级别依次是

sys > system > sysman > scott

  • sys:       必须以管理员(sysdba)或者系统操作人员(sysoper)的身份才能登录,真正的超级管理员
  • system: 可以直接登录,system及以上才有改动表空间的权限
  • sysman:通常用来操纵企业管理器(管理员级别)
  • scott:     默认会被上锁,scott是Oracle创始人之一的名字

 

1.2使用SQLPlus登录

SQL Plus是Oracle安装附带的命令行工具,可以直接使用,也可以在cmd中通过输入sqlplus来使用

登录

[username/password] [@server] [as sysdba|sysoper]

登录后切换到其它用户

connect 用户名/口令 [as sysdba | sysoper]

查看当前登录用户

show user;

1.3通过数据字典查看信息

1.3.1什么是数据字典

数据字典是数据库提供的,用于查看数据库的信息

数据字典注意点

  1. dba开头的一般是管理员级别才能查看的,非dba开头的是管理员和普通用户才能查看的
  2. 非dba开头的数据字典比描述同样东西的dba开头的数据字典的字段和记录会少,因为他们服务的用户不一样

 

1.3.2通过数据字典查看信息

查看指定数据字典有哪些字段

[desc | describe] 数据字典名

知道有哪些字段后,直接查看该字段

select username from dba_users;

1.4用户的相关操作

1.4.1锁定和解锁用户

Oracle的用户有lockunlock两种状态。像scott等部分用户是默认被锁定的,需要解锁后使用

alter user 用户名 acoount [lock | unlock];

1.4.2修改密码

alter user 用户名 identified by 密码;

1.5删除用户

--cascade是级联删除,表示连着删除这个用户下的对象
drop user 用户名 [cascade];

1.6创建和授权用户

create user 用户名 identified by 密码;

--授予指定用户"DBA"权限(须在sys身份下)
GRANT "DBA" TO 用户名 WITH ADMIN OPTION;

 

2.表空间

2.1表空间概述

2.1.1理解表空间

表空间和数据库

表空间其实就是数据库的逻辑存储空间,可以理解为表空间就是在数据库中开辟的一块用于存放数据库对象的。一个数据库有多个表空间构成。表空间是Oracle区别与其它关系型数据库的重要一点。Oracle的很多优化都是通过表空间实现了

表空间与数据文件

表空间是由一个或多个数据文件组成的。

我们存储的表、数据库、以及数据库当中的其它对象都是存放在表空间的数据文件里面的

2.1.2表空间分类

  1. 永久表空间:需要永久存储的表/视图/存储过程等
  2. 临时表空间:数据库操作中中间执行的过程, 完了自行删除将不永久保存
  3. Undo表空间:保存事务所修改的旧值,修改前的数据(利于撤销等方便回滚)

 

2.2管理表空间

2.2.1查看用户的表空间

表空间的两个数据字典:dba_tablespaces、user_tablespaces,分别针对系统管理员级别的用户和普通的用户

用户相关的数据字典:dba_users、user_users,分别针对系统管理员级别的用户和普通的用户

select tablespace_name from dba_tablespaces;

六个初始表空间

  1. SYSTEM(系统表空间):     存放sys用户的表、视图、存储过程等数据库对象
  2. SYSAUX:                          作为EXAMPLE的辅助表空间
  3. UNDOTBS1:                     存储撤销信息的undo类型表空间
  4. TEMP(临时表空间):          用于存储sql语句处理的表、索引等的临时表空间
  5. USERS(永久性表空间):   存储数据库用户创建的数据库对象
  6. EXAMPLE:                       安装Oracle 11g 数据库示例来使用的表空间

 

查看指定用户的默认表空间和临时表空间

select default_tablespace, temporary_tablespace from dba_users where username=’SYSTEM’;
select default_tablespace, temporary_tablespace from dba_users where username=’SCOTT’;

设置默认表空间和临时表空间(需要管理员级别-system及以上身份登录才有执行下面sql的权限)

alter user 用户名 default|temporary tablespace 表空间名;

2.3创建表空间

create [temporary] tablespace 表空间名 
[logging]
tempfile|datafile 'xx.dbf'|'xx.dmp'
size 50m
autoextend on  
next 50m maxsize 20480m  
extent management local; 

上面的temporary表示是创文件,size是起始大小,autoextend on时表示自增建临时表空间,tempfile是创建临时表空间指定的临时文件,datafile是创建非临时表空间指定的

 

查看表空间的相关信息的数据字典:dba_data_files、dba_temp_files,分别是非临时表空间和临时表空间的

select file_name from dba_temp_files where tablespace_name = '你要查的临时表空间名,注意大写';
select file_name from dba_data_files where tablespace_name = '你要查的非临时表空间名,注意大写';

2.4修改表空间

2.4.1修改表空间的状态

表空间有三种状态:联机(online,可读写)、脱机(offline)、只读(read only,前提是online状态)

设置联机或脱机状态

alter tablespace 表空间名 online|offline;

使用数据字典查看表空间状态

select status from dba_tablespaces where tablespace_name = '你要查看的表空间名,注意大写';

设置只读或可读写(前提是online状态,默认online就是可读写状态)

alter tablespace 表空间名 ( read only|read write );

 

2.4.2修改表空间对应的数据文件

一个表空间(逻辑)可以有多个数据文件(物理)

增加数据文件 (m是兆的意思)

alter tablespace 表空间名 add datafile|tempfile 'xx.dbf'|'xx.dmp' size xxm;

删除数据文件

alter tablespace 表空间名 drop datafile|tempfile 'xx.dbf'|'xx.dmp';

2.5删除表空间

drop tablespace 表空间名  [ including contents [ and datafiles ] [ cascade constraint ] ];

   无选项                                                                                        -- 当表空间为空才能删除
   including contents                                                                      --删除表空间及对象
   including contents and datafiles                                               --删除表空间、对象及数据文件
   including contents cascade constraint                                      -- 删除关联
   including contents and datafiles cascade constraint                 -- 含前两项

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章