Oracle创建表空间和分配用户权限

Posted q827170326

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle创建表空间和分配用户权限相关的知识,希望对你有一定的参考价值。

1、创建用户表空间

su - oracle
sqlplus / as sysdba
--创建临时表空间
--查询临时表空间文件的绝对路径。如果需要的话,可以通过查询来写定绝对路径。一般用${ORACLE_HOME}就可以了  
--查询ORACLE_HOME: echo $ORACLE_HOME
select name from v$tempfile;  
--查询到的表空间为/u01/app/oracle/oradata/orcl/temp01.dbf

create temporary tablespace NOTIFYDB_TEMP tempfile ‘u01apporacleoradataNOTIFYDB_TEMP.bdf‘ size 100m reuse autoextend on next 20m maxsize unlimited; --创建表空间 --查询用户表空间文件的绝对路径: select name from v$datafile; create tablespace NOTIFYDB datafile ‘u01apporacleoradata otifydb.dbf‘ size 100M reuse autoextend on next 40M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited); --创建用户和密码,指定上边创建的临时表空间和表空间 create user hc_notify identified by hc_password default tablespace NOTIFYDB temporary tablespace NOTIFYDB_TEMP; --赋予权限 grant dba to hc_notify; grant connect,resource to hc_notify; grant select any table to hc_notify; grant delete any table to hc_notify; grant update any table to hc_notify; grant insert any table to hc_notify;

2、删除表空间

--查看用户权限
--查看用户要具备drop tablespace的权限,如果没有,先用更高级的用户(如sys)给予授权
select a2.username,a1.privilege from dba_sys_privs a1 , user_role_privs a2
where a1.privilege = ‘DROP TABLESPACE‘
and a1.grantee =a2.granted_role

--删除临时表空间
--查看临时表空间文件
select name from v$tempfile;
--查看用户和表空间的关系
select USERNAME,TEMPORARY_TABLESPACE from DBA_USERS;
--如果有用户的默认临时表空间是NOTIFYDB_TEMP的话,建议进行更改
alter user xxx temporary tablespace tempdefault;
---设置tempdefault为默认临时表空间
alter database default temporary tablespace tempdefault;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 

--删除用户表空间
--查看表空间文件
select name from v$datafile;
--停止表空间的在线使用
alter tablespace 表空间名称 offline;
--删除表空间NOTIFYDB_TEMP及其包含数据对象以及数据文件
drop tablespace NOTIFYDB_TEMP including contents and datafiles; 


--Oracle用户权限查询相关操作:
--查看所有的用户
select * from all_users;
--查看当前用户信息
select * from user_users;
--查看当前用户的角色
select * from user_role_privs;
--查看当前用户的权限
select * from user_sys_privs;
--查看当前用户的表可操作权限
select * from user_tab_privs;

--查看某一个表的约束,注意表名要 大写
select * from user_constraints where table_name=‘TBL_XXX‘;
--查看某一个表的所有索引,注意表名要 大写
select index_name,index_type,status,blevel from user_indexes where table_name = ‘TBL_XXX‘;
--查看索引的构成,注意表名要 大写
select table_name,index_name,column_name, column_position FROM user_ind_columns WHERE table_name=‘TBL_XXX‘;

--系统数据字典 DBA_TABLESPACES 中记录了关于表空间的详细信息
select * from sys.dba_tablespaces;

--查看用户序列
select * from user_sequences;
--查看数据库序列
select * from dba_sequences;

  



以上是关于Oracle创建表空间和分配用户权限的主要内容,如果未能解决你的问题,请参考以下文章

Oracle创建用户 创建表空间 分配权限

oracle创建用户表空间临时表空间分配权限步骤详解

各位高手,请问,在oracle中创建的用户都分配哪些权限?一般分配哪些权限?

plsql怎么创建用户而且分配表空间?如果不制定表空间会怎样?以及授权的整个创建用户完整流程

oracle怎么删除用户添加的系统表空间

oracle中用户,表,表空间,三者的关系是啥?