日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

怎么查询oracle有哪些用户

發布時間:2023/12/15 综合教程 19 生活家
生活随笔 收集整理的這篇文章主要介紹了 怎么查询oracle有哪些用户 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本教程操作環境:Windows7系統、Oracle 11g版、Dell G3電腦。

查詢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有哪些用戶的詳細內容,更多請關注風君子博客其它相關文章!

總結

以上是生活随笔為你收集整理的怎么查询oracle有哪些用户的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。