以下是输出权限用户的查询。
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{f1d408f 5594:firebasejobscheduler.test.com.firbasejobschedulerdemo/u0a1227} (pid=5594, uid=11227) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
我尝试了左外连接,子查询和其他几个步骤,但无济于事。
答案 0 :(得分:0)
您可以使用交叉联接生成所有用户和权限值。然后,您可以使用left join
(或not exists
或not in
)过滤掉已存在的内容:
SELECT DISTINCT [APP_Computer_User_Id], [APP_Permission_Name]
FROM [ADMINS].[APP_USER] U CROSS JOIN
[ADMINS].[APP_PERMISSION] P LEFT JOIN
[ADMINS].[APP_USER_ROLE] UR
ON U.[APP_User_Id] = UR.[APP_User_Id] LEFT JOIN
[ADMINS].[APP_ROLE] URO
ON UR.[APP_Role_ID] = URO.[APP_Role_ID] LEFT JOIN
[ADMINS].[APP_ROLE_PERMISSION] RP
ON RP.[APP_Role_ID] = UR.[APP_Role_ID] AND
RP.[APP_Permission_Id] = P.[APP_Permission_Id]
WHERE P.[APP_Permission_Id] IS NULL;
答案 1 :(得分:0)
Select
appUser.[APP_Computer_User_Id]
[APP_Role_Name],
[APP_Permission_Name]
from [ADMINS].[APP_USER] appUser, [ADMINS].[APP_USER_ROLE] UR
JOIN [ADMINS].[APP_ROLE] URO ON UR.[APP_Role_ID]=URO.[APP_Role_ID]
INNER JOIN [ADMINS].[APP_ROLE_PERMISSION] RP ON RP.[APP_Role_ID]=UR. [APP_Role_ID]
INNER JOIN [ADMINS].[APP_PERMISSION] P ON RP.[APP_Permission_Id]=P. [APP_Permission_Id]
Left join (select [APP_User_Id] from [ADMINS].[APP_USER] uu where p. [APP_User_Id] = uu.[APP_User_Id]) U ON U.[APP_User_Id]=UR.[APP_User_Id]
where U.[APP_User_Id] is null