`

查询oracle中所有用户信息

阅读更多

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查询用户信息

    oracle查询用户信息1.查看所有用户2.查看用户或角色系统权限3.查看角色4.查看用户对象权限5.查看所有角色

    如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    如何在oracle中查询所有用户表的表名、主键名称、索引、外键等

    oracle查看所有用户的表空间

    oracle查看所有用户的表空间,熟悉oracle的同学可以看看。

    Oracle 多表查询优化

    Oracle 多表查询优化是指在 Oracle 数据库管理系统中,为了提高多表查询的效率和性能采取的一些优化策略和技术。在 Oracle 中,多表查询是指从多个表中检索数据的操作。这种操作可能会占用大量的系统资源和时间,...

    oracle 10g问题总结

    1. 查询oracle中所有用户信息 select * from dba_users; 2. 只查询用户和密码 select username,password from dba_users; 3. 查询当前用户信息 select * from dba_ustats; 4. 查询用户可以访问的视图...

    Oracle 查询用户,表,授权相关语句

    NULL 博文链接:https://springlin.iteye.com/blog/1520674

    查看登录oracle数据库用户记录.docx

    查找访问orcale数据库用户名称或IP地址

    ORACLE用户常用数据字典的查询使用方法

    ORACLE用户常用数据字典的查询使用方法,对于不熟悉oracle数据库系统表的,这份文档可以教你如何通过查询数据库系统表得到自己想要的信息。

    Oracle经典SQL语句

    ORACLE经典语句汇总 -- 字符串左填充和右填充,默认填充空格 -- 产生1~99行数据,少于一位则补0 -- 刪除相同行 -- 随机数 -- 产生业务流水号 -- 查询某张表中有哪些字段 -- 自循环表中 由叶子...--ORACLE获得系统信息

    查询表空间占用、记录条数、表归属用户信息,并举例截除过期数据释放表空间,Oracle适用

    1、当前登录用户,所有表占用表空间情况,提供合计 和 明细查询,显示为M; 2、查看某个用户所有表各自占用表空间的大小,并显示各表数据的条数;——常用于清表前,确认选最多记录的先清; 3、全数据库查询所有表...

    Oracle经典教程.pdf

    SQL数据操作和查询是指使用SQL语言来操作和查询Oracle数据库中的数据。SQL数据操作和查询包括了数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)等多方面的内容。 SQL简介 SQL是一种标准化的语言,...

    Oracle10g DBA经常使用的动态性能视图和数据字典

    dba_extents:数据库中所有分区的信息 dba_free_space:所有表空间中的自由分区 dba_indexs:关于数据库中所有索引的描述 dba_ind_columns:在所有表及聚集上压缩索引的列 dba_objects:数据库中所有的对象 dba_...

    查询Oracle数据库表空间和数据文件方法

    下面以oracle9i为例,详细介绍查询Oracle数据库表空间信息和数据文件信息的方法。一、查看Oracle数据库中表空间信息的方法1、查看Oracle数据库中表空间信息的工具方法:使用oracleenterprisemanagerconsole工具,这...

    Oracle客户端连接Oracle服务器.docx

    另说明:查询本用户下的所有表的信息叫数据字典: user_tables;DBA_users; 两类数据字典表 dba一般是system用户 查表的信息从数据字典里查如:select table_name from user_tables; dual是名义表,不存任何东西. ...

    Oracle数据库链Database links

    Oracle 数据库链 Database links 是 Oracle 数据库中的一种机制,允许用户从一个数据库中访问另一个数据库中的数据。这种机制可以实现跨数据库或跨用户的数据共享,提高了数据的可访问性和共享性。 在 Oracle ...

    根据Oracle数据库scott模式下的emp表和dept表

    5. 查询 10 号部门中工种为 MANAGER 和 20 号部门中工种为 CLERK 的员工的信息 select * from emp where (deptno = 10 and job like 'MANAGER') or (deptno = 20 and job like 'CLERK'); 这个查询语句使用了逻辑...

    解决Oracle_CPU高度消耗(100%)的数据库问题

    使用 ps -ef 命令可以找到存在问题的进程信息,以确认它们是两个远程连接的用户进程。例如,使用以下命令可以找到进程 20521 的信息: $ ps -ef|grep 20521 oracle 20521 1 47 10:43:59 ? 6:45 oraclejshs (LOCAL...

Global site tag (gtag.js) - Google Analytics