jquery - Oracle 权限矩阵

标签 jquery oracle matrix privileges

我想在Oracle中制作一个权限矩阵。

这是我的查询:

SELECT 
    DTP.TABLE_NAME,  
    DECODE(DTP.PRIVILEGE, 'SELECT', 'YES', 'NO') "SELECT",
    DECODE(DTP.PRIVILEGE, 'INSERT', 'YES', 'NO') "INSERT",
    DECODE(DTP.PRIVILEGE, 'UPDATE', 'YES', 'NO') "UPDATE",
    DECODE(DTP.PRIVILEGE, 'DELETE', 'YES', 'NO') "DELETE",
    DECODE(DTP.PRIVILEGE, 'ALTER', 'YES', 'NO') "ALTER",
    DECODE(DTP.PRIVILEGE, 'EXECUTE', 'YES', 'NO') "EXECUTE"
FROM 
    SYS.DBA_TAB_PRIVS DTP
WHERE    
    DTP.GRANTEE = 'SUPPLIER'
    OR DTP.GRANTEE IN (SELECT DRP.GRANTED_ROLE
                       FROM dba_role_privs DRP
                       START WITH grantee = 'SUPPLIER'
                       CONNECT BY PRIOR DRP.GRANTED_ROLE = DRP.GRANTEE)
ORDER BY 
    TABLE_NAME 

结果如下所示:

TABLE_NAME | SELECT | INSERT | UPDATE | DELETE | ALTER | EXECUTE |
ACCOUNT    | YES    | NO     | NO     | NO     | NO    | NO      |
ACCOUNT    | NO     | YES    | NO     | NO     | NO    | NO      |
ACCOUNT    | NO     | no     | YES    | NO     | NO    | NO      |

有什么办法可以让结果变成这样吗?

TABLE_NAME | SELECT | INSERT | UPDATE | DELETE | ALTER | EXECUTE |
ACCOUNT    | YES    | YES    | YES    | NO     | NO    | NO      |

谢谢

最佳答案

利用“YES”排序在“NO”之后的事实,并将其更改为:

SELECT 
    DTP.TABLE_NAME,  
    MAX(DECODE(DTP.PRIVILEGE, 'SELECT', 'YES', 'NO')) "SELECT",
    MAX(DECODE(DTP.PRIVILEGE, 'INSERT', 'YES', 'NO')) "INSERT",
    MAX(DECODE(DTP.PRIVILEGE, 'UPDATE', 'YES', 'NO')) "UPDATE",
    MAX(DECODE(DTP.PRIVILEGE, 'DELETE', 'YES', 'NO')) "DELETE",
    MAX(DECODE(DTP.PRIVILEGE, 'ALTER', 'YES', 'NO')) "ALTER",
    MAX(DECODE(DTP.PRIVILEGE, 'EXECUTE', 'YES', 'NO')) "EXECUTE"
FROM 
    SYS.DBA_TAB_PRIVS DTP
WHERE    
    DTP.GRANTEE = 'SUPPLIER'
    OR DTP.GRANTEE IN (SELECT DRP.GRANTED_ROLE
                       FROM dba_role_privs DRP
                       START WITH grantee = 'SUPPLIER'
                       CONNECT BY PRIOR DRP.GRANTED_ROLE = DRP.GRANTEE)
GROUP BY DTP.TABLE_NAME                       
ORDER BY 
    TABLE_NAME 

关于jquery - Oracle 权限矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51182971/

相关文章:

sql - Oracle 数据库中的编码

java - 删除时权限不足

c++ - 特征矩阵作为函数的默认参数

r - 从 var 输出中提取系数和方差-协方差矩阵(用 vars 包估计)

javascript - jQuery Isotope 不应用布局。继承问题?

javascript - Jquery 淡出回调触发太快

jQuery 1.8 自动完成与类别问题

oracle - 为什么 Oracle 在提交期间丢失数据?

r - 如何计算data.frame中连续数字的数量?

javascript - JQuery 和动态表行