Oracle----用户操作

登录oracle

  准备工作

sqlplus / as sysdba

修改system密码

alter user system  identified by 123456;

  sql/plus使用system用户登录

创建用户

创建表空间

创建用户前提是创建表空间;

CREATE TABLESPACE ticm1 LOGGING DATAFILE 'F:softwareoracle12Cshujuku	icm1.dbf'
SIZE 30G AUTOEXTEND ON NEXT 10G  EXTENT MANAGEMENT LOCAL;

  一个表空间的大小时有限制的,查看自己的数据库,表空间最大值

  在cmd下输入

show parameter db_block_size

  参考,我的系统时8k,最大表空间是32G。

4k最大表空间为:16384M
8K最大表空间为:32768M
16k最大表空间为:65536M
32K最大表空间为:131072M
64k最大表空间为:262144M

如果我们数据量过大,需要额外扩表空间大小

ALTER TABLESPACE ticm1 ADD DATAFILE
'F:softwareoracle12Cshujuku	icm2.dbf' SIZE 10240M
AUTOEXTEND ON NEXT 5M MAXSIZE 30720m;

查看用户属于那个表空间 

select username,default_tablespace from dba_users order by username;

查看表空间在磁盘位置

SELECT TABLESPACE_NAME,FILE_NAME, BLOCKS FROM DBA_DATA_FILES order by TABLESPACE_NAME;

删除表空间

  • including contents 删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数。
  • including datafiles 删除表空间中的数据文件。
  • cascade constraints 同时删除 tablespace 中表的外键参照。
drop tablespace nsName including contents and datafiles cascade constraints ;

查看表空间使用情况

SELECT a.tablespace_name "表空间名",
total / (1024 * 1024 * 1024) "表空间大小(G)",
free / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name;

  

创建用户

创建用户指定表空间

create user c##user3  identified by user3
default tablespace ticm1;

给用户赋权限

grant connect, resource,dba to c##user3;

查看表空间中的所有的表

SELECT * FROM USER_TABLES;

删除用户

  • 加了cascade就可以把用户连带的数据全部删掉。
drop user user_name cascade;

  

原文地址:https://www.cnblogs.com/yanxiaoge/p/14116730.html