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;

备注:本文完全复制自:http://jiqinlin.iteye.com/blog/758469

     仅供相互学习

时间: 2024-10-18 11:37:33

oracle查询用户的相关文章

【转】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查看用户表空间

Oracle查询用户所有表、字段等信息

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对oracle查询方面感兴趣的话,不妨一看. select * from all_tab_comments -- 查询所有用户的表,视图等 select * from user_tab_comments -- 查询本用户的表,视图等 select * from

【转】Oracle查询用户所有表

查询所有用户的表,视图等 select * from all_tab_comments; 2.  查询本用户的表,视图等 select * from user_tab_comments; 3.  查询所有用户的表的列名和注释 select * from all_col_comments; 4.  查询本用户的表的列名和注释 select * from user_col_comments; 5.  查询所有用户的表的列名等信息(详细但是没有备注) select * from all_tab_col

创建ORACLE 查询用户

[[email protected] appl]$ su -oravis [[email protected] 11.1.0]$ sqlplus / as sysdba SQL> create user erpquery identified by erpquery default tablespace APPS_TS_TX_DATA; SQL> grant connect   to   erpquery; SQL> grant   select   any   table   to  

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

1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表 2.查找表的主键(包括名称,构成列): select cu.* from user_cons_columns cu, user_constr

Oracle查询当前用户的信息

一.查看当前用户信息:1.查看当前用户拥有的角色权限信息:select * from role_sys_privs;2.查看当前用户的详细信息:select * from user_users;3.查看当前用户的角色信息:select * from user_role_privs; 总结:ORACLE中数据字典视图分为3大类,用前缀区别,分别为:USER,ALL 和 DBA,许多数据字典视图包含相似的信息. USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息.ALL_*:有关用户可

ORACLE授权用户查询另一个用户下的表与视图

实际应用中,会遇到在某个用户下需要查询另一个用户下的表数据或视图的情况,然而在没有授权时,会提示无权限操作的错误.那就需要通过授权处理后,再能进行查询操作,下面我们来看看是怎么处理的. 一.系统权限说明: 1.用户权限 CREATE SESSIOIN 连接到数据库 CREATE TABLE    在用户的方案中创建表 CREATE SEQUENCE 在用户的方案中创建序列 CREATE VIEW     在用户的方案中创视图 CREATE PROCEDURE在用户的方案中创建存储过程,函数或包

oracle查询连续n天登录的用户

-- 查询连续3天登录的用户 1 先创建一个表,如下: 1 create table USER_DATA 2 ( 3 USER_ID NUMBER, 4 LOGIN_TIME DATE 5 ); 2 插入用户登录数据: 1 insert into user_data (USER_ID, LOGIN_TIME) values ('10002', to_date('21-07-2014', 'dd-mm-yyyy')); 2 insert into user_data (USER_ID, LOGIN

oracle查询当前用户下所有的表,包括所有的字段

oracle查询当前用户下所有的表,包括所有的字段 背景: ? 前两天接到一个需求,做一个展示所有表名,表备注,表数据,表字段数,点击查看按钮查看字段名和注释,支持导出. 在Oracle中,可用使用视图USER_TABLES查看当前用户有哪些表,都有多少数据: table_name:表名,field_num:表字段数,comments:表注释,count_rows(table_name):统计表数据 SELECT * FROM USER_TABLES; USER_TAB_COLUMNS:表中的所