我正在做一個sql查詢,我想返回一個列表,將包含將有權訪問應用程序的用戶/組。這是該方案,我們將看到用戶是否有權限,如果沒有,我們將看到該組。如果兩者都不是,我們看看是否對應用程序有任何權限,如果沒有,則將用戶添加到權限,如果用戶或組具有我們添加的權限。幫助與sql查詢
SELECT
dbo.APPLICATIONS_PERMISSION.USERMASTERID,
dbo.APPLICATIONS_PERMISSION.GROUPID,
dbo.APPLICATIONS_PERMISSION.VISIBLE,
dbo.APPLICATIONS_PERMISSION.APPLICATIONID
FROM dbo.GROUP
RIGHT OUTER JOIN
dbo.APPLICATIONS_PERMISSION ON
dbo.GROUP.ID = dbo.APPLICATIONS_PERMISSION.GROUPID
FULL OUTER JOIN
dbo.USER_MASTER ON
dbo.APPLICATIONS_PERMISSION.USERMASTERID = dbo.USER_MASTER.ID
AND dbo.GROUP.ID = dbo.USER_MASTER.GROUPID
WHERE (dbo.APPLICATIONS_PERMISSION.USERMASTERID = 7)
AND (dbo.APPLICATIONS_PERMISSION.APPLICATIONID = 3)
CNC中 表模式
User_Master
ID
Name
GroupID
Aplications_Permissions
ID
AplicationsID
UsermasterID
GroupID
GROUP
ID
Name
--Data Exemple --
User_Master
1 ; Filipe ; 1
2 ; Luis ; 1
3 ; Daniel ; 2
4 ; Toino ; 3
Aplications_Permissions
1 ; 1 ; 2 ; null
2 ; 1 ; null ; 1
Group
1 abc
2 def
3 poi
Result:
input: dbo.APPLICATIONS_PERMISSION.USERMASTERID = 2 // dbo.APPLICATIONS_PERMISSION.APPLICATIONID = 1
will return
True
-----------------------------------------
input: dbo.APPLICATIONS_PERMISSION.USERMASTERID = 3 // dbo.APPLICATIONS_PERMISSION.APPLICATIONID = 1
will return
True
-----------------------------------------
input: dbo.APPLICATIONS_PERMISSION.USERMASTERID = 3 // dbo.APPLICATIONS_PERMISSION.APPLICATIONID = 2
will return
True (because nobody have permissions in that application)
-----------------------------------------
input: dbo.APPLICATIONS_PERMISSION.USERMASTERID = 3 // dbo.APPLICATIONS_PERMISSION.APPLICATIONID = 2
will return
False(dont have permissions, and dont belong to that group)
這個我現在有,但不工作:S只對用戶和該組中的用戶工作 – Luis 2010-10-12 16:06:24
它可能有助於查看您的表模式?另外,您是否需要在一個查詢中執行此操作? (即使你這樣做了,也許可以幫助你解決這個問題,你可以通過幾個更小的查詢來了解你的工作,然後建立這些部分。) – pjmorse 2010-10-12 16:07:41
你不能發表表格的細節,結構和可能的預期從查詢輸出? – Kangkan 2010-10-12 16:08:15