如何查询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 ;
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle 查询用户信息的方式有很多种,这里列举几种常见的方法供参考。 1. 使用 `SELECT` 语句从数据库查询用户信息。例如: ```sql SELECT * FROM users WHERE username = 'john.doe'; ``` 这条语句会从 `users` 表查询用户名为 `john.doe` 的用户信息。 2. 使用 Oracle 的内置视图 `DBA_USERS` 查询用户信息。例如: ```sql SELECT * FROM DBA_USERS WHERE USERNAME = 'JOHN.DOE'; ``` 这条语句会查询出所有的用户信息,包括用户名、密码、权限等。 3. 使用 Oracle 的内置函数 `USER` 查询当前用户信息。例如: ```sql SELECT USER FROM DUAL; ``` 这条语句会查询出当前用户的用户名。 希望这些信息对您有所帮助。 ### 回答2: 要查询Oracle数据库用户信息,可以使用以下SQL语句: ``` SELECT username, common, account_status, profile FROM dba_users; ``` 上述查询语句将会返回所有用户的用户名、身份验证方式、账户状态和使用的配置文件。 如果只需要查询当前用户的信息,可以使用以下SQL语句: ``` SELECT username, common, account_status, profile FROM dba_users WHERE username = '当前用户名'; ``` 在上述语句,将 '当前用户名' 替换为程序实际使用的当前用户的用户名。 此外,还可以根据需要查询其他用户信息,只需将 '当前用户名' 替换为对应的用户名。 执行以上查询语句后,将返回用户的用户名、身份验证方式、账户状态和使用的配置文件等信息。 ### 回答3: Oracle数据库可以使用SELECT语句来查询用户信息。下面是一个示例查询语句: SELECT * FROM 用户表名; 其,"用户表名"是存储用户信息数据库表的名称。 这条查询语句将返回用户表的所有信息,包括每个用户的所有字段。如果只想查询特定字段的信息,可以使用如下语法: SELECT 字段1, 字段2, 字段3 FROM 用户表名; 其,"字段1, 字段2, 字段3"是要查询的字段名称,可以根据需要将其替换为真实的字段名。 另外,如果只想查询满足特定条件的用户信息,可以使用WHERE子句来筛选结果。以下是一个示例: SELECT * FROM 用户表名 WHERE 条件; 其,"条件"是根据需要替换的查询条件。可以使用各种比较运算符(如等于、大于、小于等)和逻辑运算符(如AND、OR)来定义条件。 除了基本的SELECT语句,还可以使用ORDER BY子句来对查询结果进行排序,使用GROUP BY子句来对结果进行分组,以及使用LIMIT子句来限制返回的记录数等等。 总而言之,Oracle数据库提供了丰富的查询功能,可以根据需要使用SELECT语句来查询用户信息,可以根据具体的需求自定义查询条件以及结果展示方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值