gpt4 book ai didi

sql - 如何获得 Oracle 数据库中的所有应用程序专用或自定义角色?

转载 作者:行者123 更新时间:2023-12-02 02:14:51 26 4
gpt4 key购买 nike

在网上搜索并阅读了 Oracle 文档之后,我需要一些帮助来获取在 Oracle 数据库中找到的所有自定义角色。因为我找不到一个好的资源来给我系统表或数据字典的逻辑模型(所以我可以看到 dba_role 映射到哪里),我能想到的最好的是:

select role from dba_roles 

然后从那里过滤掉我知道的任何 sys 或 sysdba 角色——我知道这可能不正确。

任何有关使用哪个表的有用指示将不胜感激。

最佳答案

您可以找到dba_roles View 背后的SQL:

select * from dba_views where view_name = 'DBA_ROLES';

这是我系统上的代码:

select name, decode(password, null,          'NO',
'EXTERNAL', 'EXTERNAL',
'GLOBAL', 'GLOBAL',
'YES'),
decode(password, null, 'NONE',
'EXTERNAL', 'EXTERNAL',
'GLOBAL', 'GLOBAL',
'APPLICATION', 'APPLICATION',
'PASSWORD')
from user$
where type# = 0 and name not in ('PUBLIC', '_NEXT_USER');

当我运行 select * from sys.user$ where type# = 0 order by ctime; 时,我几乎同时看到了很多带有 ctime 的 View , 几年前。 (时间甚至在我的数据库创建之前。)假设旧角色是系统生成的可能是安全的。

但这并不一定意味着最新的角色都是自定义角色。 ctime 可能会在升级或重新编译后发生变化,或者如果您安装了新选项。

安装新实例并减去您在 dba_roles 中看到的任何内容可能会有所帮助。

关于sql - 如何获得 Oracle 数据库中的所有应用程序专用或自定义角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com