如何查询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中所有用户信息 ----1.查询数据库中的表空间名称 ----1)查询所有表空间 select tablespace_name from dba_tablespaces; se ...
- 如何用Excel直接查询Oracle中的数据
将Oracle中查询的数据保存为Excel文件,通常使用的是PL/SQL Developer. 其实,Excel可直接写SQL语句查询Oracle中数据,在这里,用到ODBC驱动.详细步骤如下: 一. ...
- 如何用Excel直接查询Oracle中的数据(转)
将Oracle中查询的数据保存为Excel文件,通常使用的是PL/SQL Developer. 其实,Excel可直接写SQL语句查询Oracle中数据,在这里,用到ODBC驱动.详细步骤如下: 一. ...
- 如何查询oracle中的关键字
如何查询oracle中的关键字,执行: select * from v$reserved_words
- mysql查询语句中用户变量的使用
先上代码吧 SELECT `notice`.`id` , `notice`.`fid` , `notice`.`has_read` , `notice`.`notice_time` , `notice ...
- (转)oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQLalter user XXX account lock; ...
- oracle中用户删除不了,ORA-01940提示 “无法删除当前已连接用户”
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQL>alter user XXX account l ...
- Oracle中用户(User)和模式(Schema)的概念
数据库理论中数据库用户和数据库模式并没有必定的联系.具体的数据库模式解释能够在这里找到: http://stackoverflow.com/questions/2674222/what-is-purp ...
- 使用PL/SQL能查询oracle中数据,在for update 语句中一直卡住
原因:在oracle中,执行了update或者insert语句后,都会要求commit,如果不commit却强制关闭连接,oracle就会将这条提交的记录锁住.下次就不能执行增删操作. 解决:1.查询 ...
随机推荐
- 在springmvc中使用hibernate-validate
在springmvc.xml中加入 <!-- 国际化配置 --> <bean id="localeResolver" class="org.spring ...
- C++中的运算符重载
首先思考以下几个问题: 1.什么是运算符重载? 2.为什么要重载运算符,它有什么用? 3.可以重载哪些运算符? 4.重载运算符有哪些规则? 一.基本概念 我们在程序中使用各种操作符,比如加(+).赋值 ...
- 从客户端(&)中检测到有潜在危险的 Request.Path 值。
1. <system.web> <httpRuntime requestValidationMode="2.0" /> </system.w ...
- Hadoop和Spark的异同
谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生.但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同. 解决问题的 ...
- 创建文本,innerHTML与createTextNode的使用
第一种:innerHTML p.innerHTML="124"; 除了这个还可以console.log(p.innerHTML) 弹出p里面的内容; 第二种:createTextN ...
- PHP5.5 + IIS + Win7的配置
PHP运行环境主要分windows环境和linux环境,本文主要简单介绍下我自己的配置,其他就不一一说明了. windows环境 方式一:.Apache的安装配置:2.MySQL的安装配置,可安装ph ...
- discourse 基于ember.js+rails项目的安装部署
最近公司在讨论做一个ERP运维问答的论坛系统,看了很多开源系统,觉得discourse功能比较完善,灵活.可配置性非常好,部署方便,瀑布流的主题布局模式也很符合未来论坛的趋势,于是在 ucloud 上 ...
- 开源(免费)三维 GIS(地形,游戏)
先写想法: 想做个简单的地形漫游,于是考虑在ww直接开发,或找个控件形式的开发组件. 最大的期望有: 1. 支持google的sketchup,快速智能三维建模 2. 设计模式做好点,最好先做成组件形 ...
- php基础09:提取表单数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 20135316王剑桥 linux第十周课实验笔记
关于who 功能说明:显示目前登入系统的用户信息. 语 法:who [-Himqsw][--help][--version][am i][记录文件] 补充说明:执行这项指令可得知目前有那些用户登入系统 ...