Heim  >  Artikel  >  Datenbank  >  oracle 查看用户,用户权限,用户表空间,用户默认表空间

oracle 查看用户,用户权限,用户表空间,用户默认表空间

WBOY
WBOYOriginal
2016-06-07 15:18:511442Durchsuche

http://blog.sina.com.cn/s/blog_616d29fc010154yo.html 查看用户和默认表空间的关系。 select username,default_tablespace from dba_users; 1.查看表结构:desc表名 2.查看当前用户的表: select table_name from user_tables; 3.查看所有用户的表名: sel

http://blog.sina.com.cn/s/blog_616d29fc010154yo.html

 

查看用户和默认表空间的关系。
select username,default_tablespace from dba_users;


1.查看表结构:desc表名

2.查看当前用户的表:

select table_name from user_tables;
3.查看所有用户的表名:

select table_name from all_tables;
4.查看所有表名(其中包括系统表)

select table_name from all_tables;
5.查看所有的表:

select * from tab/dba_tables/dba_objects/cat;
下面介绍Oracle查询用户表空间

◆Oracle查询用户表空间:select * from user_all_tables

◆Oracle查询所有函数和储存过程:select * from user_source

◆Oracle查询所有用户:select * from all_users.select * from dba_users

◆Oracle查看当前用户连接:select * from v$Session

◆Oracle查看当前用户权限:select * from session_privs

◆Oracle查看用户表空间使用情况:

select a.file_id "FileNo",a.tablespace_name

"Tablespace_name",

a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",

sum(nvl(b.bytes,0)) "Free",

sum(nvl(b.bytes,0))/a.bytes*100 "%free"

from dba_data_files a, dba_free_space b

where a.file_id = b .file_id(+)

group by a.tablespace_name ,

a.file_id,a.bytes order by a.tablespace_name;
1.查看所有用户:

  select * from dba_user;

  select * from all_users;

  select * from user_users;

2.查看用户系统权限:

  select * from dba_sys_privs;

  select * from all_sys_privs;

  select * from user_sys_privs;

3.查看用户对象权限:

  select * from dba_tab_privs;

  select * from all_tab_privs;

  select * from user_tab_privs;

4.查看所有角色:

  select * from dba_roles;

5.查看用户所拥有的角色:

  select * from dba_role_privs;

  select * from user_role_privs;

6.查看角色所拥有的权限:

  select * from role_sys_privs;

  select * from role_tab_privs;

7.查看所有系统权限

  select * from system_privilege_map;

8.查看所有对象权限

  select * from table_privilege_map;

以上是在Oracle中查看用户权限 ,

在DB2中为:

  select * from syscat.dbauth

  或者

  get authorizations


查看sid

  select * from v$instance

创建临时表空间
Sql代码 
create temporary tablespace stbss_tmp  
tempfile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf'  
size 32m  
autoextend on  
next 32m maxsize 2048m  
extent management local; 
 
 
 创建数据表空间
 Sql代码 
 create tablespace stbss  
 logging  
 datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf'  
 size 32m  
 autoextend on  
 next 32m maxsize 2048m  
 extent management local; 
 

 DATAFILE: 表空间数据文件存放路径
 SIZE: 起初设置为32M
 UNIFORM: 指定区尺寸,如不指定,区尺寸默认为64k
 空间名称stbss与数据文件名称 stbss.dbf 不要求相同,可随意命名.
 AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
 alter database datafile ' E:\oracle\product\10.2.0\oradata\orcl\stbss01.dbf ' resize 32m; //手动修改数据文件大小为32M 
 
 创建用户并指定表空间
 Sql代码 
 create user username identified by password  
 default tablespace stbss 
 temporary tablespace stbss_tmp;  
 
 
 给用户授予权限
 Sql代码 
 grant connect,resource to username; 
 
  改变用户默认表空间
 
 
 Sql代码 
 alter user username default tablespace stbss; 
 
  查询用户和表空间之间的关系
select distinct(owner) ,tablespace_name from dba_segments;
 
   向USERS表空间增加一个数据文件:


  SQL> alter tablespace users add datafile '/opt/oracle/oradata/eygle/users02.dbf' size 10M;
  Tablespace altered.
  SQL> select file#,name from v$datafile;
  FILE# NAME
  ---------- --------------------------------------------------
  1 /opt/oracle/oradata/eygle/system01.dbf
  2 /opt/oracle/oradata/eygle/undotbs01.dbf
  3 /opt/oracle/oradata/eygle/sysaux01.dbf
  4 /opt/oracle/oradata/eygle/users01.dbf
  5 /opt/oracle/oradata/eygle/users02.dbf
  5 rows selected.


  确认表空间文件信息:

 

  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';
  FILE_NAME FILE_ID
  -------------------------------------------------- ----------
  /opt/oracle/oradata/eygle/users02.dbf 5
  /opt/oracle/oradata/eygle/users01.dbf 4


确认表空间未被存储占用:


  SQL> select segment_name,file_id,blocks from dba_extents where file_id=5;
  no rows selected


  删除表空间中的空数据文件:

 

  SQL> alter tablespace users drop datafile '/opt/oracle/oradata/eygle/users02.dbf';
  Tablespace altered.


  检查数据字典,这个空文件的信息已经被彻底清除了:

 

  SQL> select file_name,file_id from dba_data_files where tablespace_name='USERS';
  FILE_NAME FILE_ID
  -------------------------------------------------- ----------
  /opt/oracle/oradata/eygle/users01.dbf 4

 

 以后以该用户登录,创建的任何数据库对象都属于stbss_tmp和stbss表空间,这就不用在每创建一个对象给其指定表空间了
 
 删除oracle临时表空间
  新建一个临时表空间,然后把数据库的默认临时表空间指向新建的这个,等到旧的临时表空间没人用的时候,就可以删除了
 
 Sql代码 
 --1:查看数据库的默认临时表空间 
 select property_name, property_value 
   from database_properties 
  where property_name = 'default_temp_tablespace'; 
  
 --2:创建一个新的临时表空间temp_xxxx 
 -----参考上面的创建语句 
 --3:查看数据库中有哪些临时表空间。 
 select distinct tablespace_name from dba_temp_files; 
  
 --4:把默认临时表空间从temp切换到temp_xxxx 
 alter database default temporary tablespace temp_xxxx; 
  
 --5:再次查看数据库的默认临时表空间 
 select property_name, property_value 
   from database_properties 
  where property_name = 'default_temp_tablespace'; 
  
 --6:删除原来的临时表空间 
 drop tablespace temp; 

 


删除用户:test
drop user test cascade

删除表空间:
DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES

删除表:
delete from users;

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn