我正在尝试使用以下签名创建一个函数:
FUNCTION tableList(user_a VARCHAR2, user_b VARCHAR2) RETURN VARCHAR2;
哪个会打印table
列表作为逗号分隔字符串,其中每个table
的所有者为user_a
且 user_b
拥有INSERT
权限。
我发现这不是一个简单的答案,因为人们可以GRANT role_1 TO role_2
以及GRANT role_2 TO user_x
,所以这些连接会构建一棵树。我还发现,dba_tab_privs
将表与他们的所有者和受让人一起存储。当grantee
列存储ROLE
时,它会变得棘手。
我正在寻找手边的功能。