我想输出用户帐户没有的权限

时间:2017-02-07 10:58:28

标签: sql sql-server sql-server-2008

以下是输出权限用户的查询。

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

我尝试了左外连接,子查询和其他几个步骤,但无济于事。

2 个答案:

答案 0 :(得分:0)

您可以使用交叉联接生成所有用户和权限值。然后,您可以使用left join(或not existsnot 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