暂无图片
Oracle 查询具有某权限的所有用户
我来答
分享
Thomas
2022-11-03
Oracle 查询具有某权限的所有用户

比如要查出具有create database link权限的所有用户,这个权限有可能是显式授予该用户的,也有可能是通过ROLE的方式授予的。请给出SQL。

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
哇哈哈

select u.username
from dba_users u
where u.username in
(select rp.grantee
from dba_role_privs rp
where rp.granted_role in
(select a.grantee
from dba_sys_privs a
where a.privilege = 'CREATE DATABASE LINK'))
or u.username in
(select sp.grantee
from dba_sys_privs sp
where sp.privilege = 'CREATE DATABASE LINK')



暂无图片 评论
暂无图片 有用 1
打赏 0
猫瞳映月
2022-12-15
还得是娃哈哈大佬厉害,什么特殊的需求都能实现,学到了
Thomas

哇哈哈,应该不全面吧。因为有通过ROLE级联授权的方式:

SQL> create role abc;

Role created.

SQL> create role def;

Role created.

SQL> grant create session to abc;

Grant succeeded.

SQL> grant abc to def;

Grant succeeded.

SQL> create user test identified by test;

User created.

SQL> grant def to test;

Grant succeeded.

--查询TEST用户是否具有create session权限,结果没有。我在你的查询外面加了个外套,外套里限制条件是username='TEST'
select * from (
select u.username
from dba_users u
where u.username in
(select rp.grantee
from dba_role_privs rp
where rp.granted_role in
(select a.grantee
from dba_sys_privs a
where a.privilege = 'CREATE SESSION'))
or u.username in
(select sp.grantee
from dba_sys_privs sp
where sp.privilege = 'CREATE SESSION')) where username='TEST';

no rows selected

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics, Real Application Testing
and Unified Auditing options

test可以登录SQLPLUS
[oracle@iZ94t0nyo72Z ~]$ sqlplus test/test

SQL*Plus: Release 12.1.0.2.0 Production on Thu Nov 3 16:17:51 2022

Copyright (c) 1982, 2014, Oracle. All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics, Real Application Testing
and Unified Auditing options


Session altered.

Elapsed: 00:00:00.00

SQL> exit

暂无图片 评论
暂无图片 有用 1
打赏 0
哇哈哈
2022-11-03
唉。子子孙孙无穷匮也
virvle
2022-11-08
O(∩_∩)O哈哈~学到了
回答交流
Markdown


请输入正文
提交
相关推荐
redo 大小1g 10组 这种会使rman恢复变慢吗
回答 2
已采纳
不会,后续处理redo可以删除,重新添加几组几百m的redo,clear出来就很快
有21C ADG部署参考文档嘛?
回答 2
已采纳
可以参考19C的ADG搭建方式,使用dbca来快速创建:优缺点:方便快捷,搭建速度较快。但是会影响主库的性能,执行过程报错不方便排查。具体命令可参考:dbcasilentcreateDuplicate
ORACLE 11g 使用ZHS16DBCS字符集load文件时繁体字乱码,简体字正常加载,怎么办?
回答 1
ZHS16DBCS?没见过人用啊查看服务器端字符集:selectfromv$nlsparameters;selectfromnlsdatabaseparameters;建议数据库字符集修改为ZHS16
从客户端通过SQL*Plus登陆Oracle某个特定用户,必须要提供什么信息?
回答 1
1、数据库用户名和密码2、数据库主机IP3、数据库监听端口4、数据库servicename或者SID通常可以使用以下方式连接:sqlpluslucifer/lucifer@10.211.55.100:
oracle 的flashback闪回功能,开启过后有弊端吗?要注意些啥?
回答 2
已采纳
dgmgrl主备切换跟开不开闪回没关系;dg环境建议主备库都开启闪回,万一出现failover可以更快速的恢复同步;需要注意闪回日志存放空间,默认是存放1天,不会占用太多空间
oracle在insert数据的过程中,可以resize表空间大小吗?
回答 4
已采纳
可以
oracle 监听程序能监听在多块网卡不同ip上面吗?
回答 1
已采纳
可以。
内存占用率高,有啥好解决方法?
回答 2
这个是Oracle数据库的进程,数据库占用内存大很正常喔,尤其是业务高峰期,CPU、内存、IO资源都会占用很大。如果您想查看更具体得信息,您可以导出一份AWR报告来分析,也可以将AWR报告上传到问答模
物化视图增量刷新显示刷新成功,但数据没刷过来
回答 10
升级问题到:紧急故障
Oracle数据库开启了库级最小补充日志,对没有添加表级附加日志的表进行DML操作时,REDO LOG里会如何记录字段信息(多选)? A INSERT操作记录所有字段 B UPDATE操作记录所有字段 C DELETE操作记录所有字段
回答 1
已采纳
AC答案是AINSERT操作记录所有字段CDELETE操作记录所有字段如果数据库开启了库级最小补充日志而没有添加表级附加日志,redolog里信息按照如下规则记录:1)INSERT操作记录所有字段2)