(一)创建表空间
如果不能创建,说明数据库没有启动,执行STARTUP命令之后再创建。 SQL> create tablespace tbs 2 datafile '/u01/app/oracle/oradata/orcl/worktbs01.dbf' 3 size 10m autoextend on; 表空间已创建。
(二)管理表空间
1、调整表空间的大小 ①更改数据文件大小 SQL> alter database datafile 2 '/u01/app/oracle/oradata/orcl/worktbs01.dbf' 3 resize 80m;
数据库已更改。
②向表空间添加数据文件 SQL> alter tablespace tbs 2 add datafile 3 '/u01/app/oracle/oradata/orcl/worktbs02.dbf' size 20m 4 autoextend on;
表空间已更改。
2.改变表空间的读写状态 SQL> alter tablespace tbs read only; //将表空间设置为只读
表空间已更改。 SQL> alter tablespace tbs read write;//将表空间设置为可读写
表空间已更改。
3.查看表空间的状态 SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
SYSTEM ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE TEMP ONLINE USERS ONLINE EXAMPLE ONLINE TBS_WORK READ ONLY 4.查看表空间中有哪些数据文件 SQL> selectfile_name from dba_data_files;
FILE_NAME
/u01/app/oracle/oradata/orcl/system01.dbf /u01/app/oracle/oradata/orcl/sysaux01.dbf /u01/app/oracle/oradata/orcl/undotbs01.dbf /u01/app/oracle/oradata/orcl/users01.dbf /u01/app/oracle/oradata/orcl/worktbs01.dbf /u01/app/oracle/oradata/orcl/worktbs02.dbf
已选择 6 行。
5.查看服务器中有哪些表空间 SQL> select name from v$tablespace;
NAME
SYSAUX SYSTEM UNDOTBS1 USERS TEMP SYSTEM SYSAUX UNDOTBS1 TEMP SYSTEM SYSAUX
NAME
UNDOTBS1 TEMP USERS TBS
已选择 15 行。
6.删除表空间 SQL> drop tablespace tbs_work[including contents] //如果要删除包含数据的表空间需要加上此项 SQL> drop tablespace tbs;
表空间已删除。
SQL> select name from v$tablespace; NAME
SYSAUX SYSTEM UNDOTBS1 USERS TEMP SYSTEM SYSAUX UNDOTBS1 TEMP SYSTEM SYSAUX
NAME
UNDOTBS1 TEMP USERS
已选择 14 行。
(三)用户管理 1.创建用户c##abc,并设置默认表空间为tbs,并不限制配额,临时表空间为temp,同时设置第一次登录需要更改密码 SQL> SQL> create user c##abc 2 identified by abcpwd 3 default tablespace tbs 4 temporary tablespace temp 5 quota unlimited on tbs 6 password expire;
用户已创建。
2.修改c##abc用的口令为123456 SQL> alter user c##abc identified by 123456;
用户已更改。
3.删除用户bdqn SQL> drop user bdqn cascade;
案例四:权限管理
1.使用c##abc用户登录,提示没有权限登录 SQL> alter user c##abc identified by 123456;
用户已更改。
SQL> conn c##abc/123456 ERROR: ORA-01045: 用户 C##ABC 没有 CREATE SESSION 权限; 登录被拒绝
警告: 您不再连接到 ORACLE。
- 为用户授予session(连接到数据库)权限 SQL> conn sys/123456 as sysdba; 已连接。 SQL> grant create session to c##abc; 授权成功。 SQL> conn c##abc/123456; 已连接。
3.以c##abc身份查看scott用户的emp表,发现没有权限(提前创建) SQL> select* from scott.emp; select* from scott.emp * 第 1 行出现错误: ORA-00942: 表或视图不存在
4.授予c##abc用户有查看scott.emp的权限 SQL> conn sys/123456 as sysdba; 已连接。 SQL> grant select on scott.emp to bdqn; 5.再次以c##abc用户的身份查看scott.emp就可以了 SQL> conn c##abc/123456; SQL> select * fromscott.emp;