如何查询Oracle中所有用户信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查询Oracle中所有用户信息相关的知识,希望对你有一定的参考价值。

方法如下:

输入select * from dba_users; 即可。

常用语句:

一,查看数据库里面所有用户:

select * from dba_users; 

前提是你是有dba权限的帐号,如sys,system。

二,查看你能管理的所有用户:

select * from all_users;  

三,查看当前用户信息 :

select * from user_users; 

扩展资料:

Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。

此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。

这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。

Oracle数据库具有完整的数据管理功能: 

1)数据的大量性

2)数据的保存的持久性

3)数据的共享性

4)数据的可靠性

参考资料:百度百科:Oracle数据库



参考技术A

1、查询oracle中所有用户信息

select * from dba_users;

2、只查询用户和密码

select username,password from dba_users;

3、查询当前用户信息

select * from dba_ustats;

4、查询用户可以访问的视图文本

select * from dba_varrays;

5、查看用户或角色所拥有的角色

select * from dba_role_privs;   

select * from user_role_privs;

6、查看用户或角色系统权限(直接赋值给用户或角色的系统权限)

select * from dba_sys_privs;   

select * from user_sys_privs; (查看当前用户所拥有的权限)

扩展资料:

总结

ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA, 
许多数据字典视图包含相似的信息。

USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息。 

ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上其他用户创建的对象但该用户有权访问的信息。 

DBA_*:有关整个数据库中对象的信息。

参考技术B

----查询oracle中所有用户信息

----1、查询数据库中的表空间名称

----1)查询所有表空间

select tablespace_name from dba_tablespaces;

select tablespace_name from user_tablespaces;

----2)查询使用过的表空间  

select distinct tablespace_name from dba_all_tables;

select distinct tablespace_name from user_all_tables;

----2、查询表空间中所有表的名称

select *  from dba_all_tables where tablespace_name = 'SYNC_PLUS_1' and owner='GDSDCZJ'

----3、查询系统用户

select * from all_users

select * from dba_users

----4、查看当前连接用户

select * from v$session

----5、查看当前用户权限

select * from session_privs

----6、查看所有的函数和存储过程

select * from user_source

----其中TYPE包括:PROCEDURE、FUNCTION

----7、查看表空间使用情况

select  sum(Bytes_size) from (

select a.file_id "FileNo",

a.tablespace_name "表空间",

a.bytes/1024/1021/1024 Bytes_size,

a.bytes - sum(nvl(b.bytes, 0)) "已用",

sum(nvl(b.bytes, 0)) "空闲",

sum(nvl(b.bytes, 0)) / a.bytes * 100 "空闲百分率"

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_users;

select * from all_users;

select * from user_users;

----2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

select * from dba_sys_privs;

select * from user_sys_privs; (查看当前用户所拥有的权限)

----3.查看角色(只能查看登陆用户拥有的角色)所包含的权限

sql>select * from role_sys_privs;

----4.查看用户对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

----5.查看所有角色:

select * from dba_roles;

----6.查看用户或角色所拥有的角色:

select * from dba_role_privs;

select * from user_role_privs;

----7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS

----8.SqlPlus中查看一个用户所拥有权限

SQL>select * from dba_sys_privs where grantee='username';

其中的username即用户名要大写才行。

比如:

SQL>select * from dba_sys_privs where grantee='TOM';

----9、Oracle删除指定用户所有表的方法

select 'Drop table '||table_name||';' from all_tables

where owner='要删除的用户名(注意要大写)';

----10、删除用户

drop user user_name cascade;

如:drop user SMCHANNEL CASCADE

----11、获取当前用户下所有的表:

select table_name from user_tables;

----12、删除某用户下所有的表数据:

select 'truncate table  ' || table_name from user_tables;

----13、禁止外键

----ORACLE数据库中的外键约束名都在表user_constraints中可以查到。其中constraint_type='R'表示是外键约束。

----启用外键约束的命令为:

alter table table_name enable constraint constraint_name

----禁用外键约束的命令为:

alter table table_name disable constraint constraint_name

----然后再用SQL查出数据库中所以外键的约束名:

select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

--14、ORACLE禁用/启用外键和触发器

--启用脚本

SET SERVEROUTPUT ON SIZE 1000000

BEGIN

for c in (select 'ALTER TABLE '||TABLE_NAME||' ENABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop

DBMS_OUTPUT.PUT_LINE(C.V_SQL);

begin

EXECUTE IMMEDIATE c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

for c in (select 'ALTER TABLE '||TNAME||' ENABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;

/

commit;

--禁用脚本

SET SERVEROUTPUT ON SIZE 1000000

BEGIN

for c in (select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' ' as v_sql from user_constraints where CONSTRAINT_TYPE='R') loop

DBMS_OUTPUT.PUT_LINE(C.V_SQL);

begin

EXECUTE IMMEDIATE c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

for c in (select 'ALTER TABLE '||TNAME||' DISABLE ALL TRIGGERS ' AS v_sql from tab where tabtype='TABLE') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;

/

commit;

扩展延伸:

公司名称:甲骨文股份有限公司

外文名称:Oracle

总部地点:美国加州红木城

成立时间:加利福尼亚(1977年)

经营范围:数据库软件

公司口号:信息驱动

年营业额:379亿美元(2014年)

员工数:108492(2011年)

公司类型:上市公司

公司规模:世界百强

CEO:马克·赫德

官网:http://www.oracle.com/

甲骨文公司

甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。

2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。

参考资料:甲骨文公司_百度百科

参考技术C

1.查看所有用户:

select * from dba_users;

select * from all_users;

select * from user_users;

2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):

select * from dba_sys_privs;

select * from user_sys_privs; (查看当前用户所拥有的权限)

3.查看角色(只能查看登陆用户拥有的角色)所包含的权限

sql>select * from role_sys_privs;

4.查看用户对象权限:

select * from dba_tab_privs;

select * from all_tab_privs;

select * from user_tab_privs;

5.查看所有角色: select * from dba_roles;

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

select * from dba_role_privs;

select * from user_role_privs;

7.查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)

select * from V$PWFILE_USERS

8.SqlPlus中查看一个用户所拥有权限

SQL>select * from dba_sys_privs where grantee='username'; 其中的username即用户名要大写才行。

比如: SQL>select * from dba_sys_privs where grantee='TOM';

9、Oracle删除指定用户所有表的方法

select 'Drop table '||table_name||';'from all_tables where owner='要删除的用户名(注意要大写)';

10、删除用户

drop user user_name cascade; 如:dropuser SMCHANNEL CASCADE

11、获取当前用户下所有的表:

select table_name from user_tables;

12、删除某用户下所有的表数据:

select 'truncate table ' || table_namefrom user_tables;

13、禁止外键 ORACLE数据库中的外键约束名都在表user_constraints中可以查到。

其中constraint_type='R'表示是外键约束。

启用外键约束的命令为:alter table table_name enableconstraint constraint_name

禁用外键约束的命令为:alter table table_name disableconstraint constraint_name

然后再用SQL查出数据库中所以外键的约束名:

select 'alter table '||table_name||' enable constraint '||constraint_name||';'from user_constraints where constraint_type='R'

select 'alter table '||table_name||' disable constraint '||constraint_name||';'from user_constraints where constraint_type='R'

14、ORACLE禁用/启用外键和触发器 --启用脚本

SET SERVEROUTPUT ON SIZE1000000

BEGIN

for c in (select'ALTER TABLE '||TABLE_NAME||' ENABLE CONSTRAINT '||constraint_name||' 'as v_sql from user_constraints

where CONSTRAINT_TYPE='R') loop

DBMS_OUTPUT.PUT_LINE(C.V_SQL);

begin

EXECUTE IMMEDIATE c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

for c in (select'ALTER TABLE '||TNAME||' ENABLE ALL TRIGGERS 'AS v_sql from tab wheretabtype='TABLE') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;

/

commit;

--禁用脚本

SET SERVEROUTPUT ON SIZE1000000

BEGIN

for c in (select'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||constraint_name||' 'as v_sql from user_constraints

where CONSTRAINT_TYPE='R') loop

DBMS_OUTPUT.PUT_LINE(C.V_SQL);

begin

EXECUTE IMMEDIATE c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

for c in (select'ALTER TABLE '||TNAME||' DISABLE ALL TRIGGERS 'AS v_sql from tab wheretabtype='TABLE') loop

dbms_output.put_line(c.v_sql);

begin

execute immediate c.v_sql;

exception when others then

dbms_output.put_line(sqlerrm);

end;

end loop;

end;

/

commit;

参考技术D

查看所有用户代码:

 

select* fromdba_users;  

select* fromall_users;  

select* fromuser_users;

拓展资料:

查看用户或角色系统权限(直接赋值给用户或角色的系统权限): 

select* fromdba_sys_privs;  

select* fromuser_sys_privs; (查看当前用户所拥有的权限)

查看角色(只能查看登陆用户拥有的角色)所包含的权限 

sql>select* fromrole_sys_privs;

查看用户对象权限: 

select* fromdba_tab_privs;  

 select* fromall_tab_privs;   

select* fromuser_tab_privs;

查看所有角色:

select* fromdba_roles;

查看用户或角色所拥有的角色: select* fromdba_role_privs;   select* fromuser_role_privs;

以上是关于如何查询Oracle中所有用户信息的主要内容,如果未能解决你的问题,请参考以下文章

如何查询Oracle中所有用户信息

如何查询Oracle中所有用户信息

如何查询Oracle中用户所有信息

Oracle数据库中如何查询一个用户A下面所有的表的信息

查询oracle中所有用户信息(转)

如何在ORACLE中查询某一用户下所有的空表