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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
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: 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、付费专栏及课程。

余额充值