0
我的目標是編寫一個循環/轉換,將經過每個容器(acucore_securitycontainer表)並清理基於下面的腳本中的所有權限(acucore_securitypermission橋表) 。我不在乎,如果我結束了兩個腳本..這是完全沒問題的。請注意這兩個清理查詢之間的區別是「S」與「H」和「口水」與「發」。T-SQL轉換腳本,以刪除權限表橋壞數據
查詢#1(用於毛髮施用上下文的安全性):
DELETE FROM dbo.acucore_securitypermission
WHERE
'ENTITYID:' + cast(dbo.acucore_securitypermission.entityid as VARCHAR(64)) + '|'
+ 'ESID:' + cast(dbo.acucore_securitypermission.esid as VARCHAR(64)) IN
(
SELECT
'ENTITYID:' + cast(dbo.acucore_securitypermission.entityid as VARCHAR(64)) + '|'
+ 'ESID:' + cast(dbo.acucore_securitypermission.esid as VARCHAR(64))
FROM dbo.acucore_securitypermission
JOIN dbo.acucore_securitycontainer ON dbo.acucore_securitypermission.esid = dbo.acucore_securitycontainer.esid
JOIN dbo.acucore_securitygroup ON dbo.acucore_securitypermission.entityid = dbo.acucore_securitygroup.entityid
WHERE containername LIKE 'H:UI.Web.AccessioningDashboard'
AND groupname NOT IN
(
SELECT
CASE WHEN groupname IN ('Accessioning', 'Screening', 'Positive Certify', 'Negative Certify', 'Confirmation') THEN 'Hair: ' + groupname ELSE groupname END AS 'custom groupname'
FROM dbo.acucore_securitypermission
JOIN dbo.acucore_securitycontainer ON dbo.acucore_securitypermission.esid = dbo.acucore_securitycontainer.esid
JOIN dbo.acucore_securitygroup ON dbo.acucore_securitypermission.entityid = dbo.acucore_securitygroup.entityid
WHERE containername = 'UI.Web.AccessioningDashboard'
AND permissions = 1
)
)
查詢#2(用於唾液應用程序上下文的安全性):
DELETE FROM dbo.acucore_securitypermission
WHERE
'ENTITYID:' + cast(dbo.acucore_securitypermission.entityid as VARCHAR(64)) + '|'
+ 'ESID:' + cast(dbo.acucore_securitypermission.esid as VARCHAR(64)) IN
(
SELECT
'ENTITYID:' + cast(dbo.acucore_securitypermission.entityid as VARCHAR(64)) + '|'
+ 'ESID:' + cast(dbo.acucore_securitypermission.esid as VARCHAR(64))
FROM dbo.acucore_securitypermission
JOIN dbo.acucore_securitycontainer ON dbo.acucore_securitypermission.esid = dbo.acucore_securitycontainer.esid
JOIN dbo.acucore_securitygroup ON dbo.acucore_securitypermission.entityid = dbo.acucore_securitygroup.entityid
WHERE containername LIKE 'S:UI.Web.AccessioningDashboard'
AND groupname NOT IN
(
SELECT
CASE WHEN groupname IN ('Accessioning', 'Screening', 'Positive Certify', 'Negative Certify', 'Confirmation') THEN 'Saliva: ' + groupname ELSE groupname END
FROM dbo.acucore_securitypermission
JOIN dbo.acucore_securitycontainer ON dbo.acucore_securitypermission.esid = dbo.acucore_securitycontainer.esid
JOIN dbo.acucore_securitygroup ON dbo.acucore_securitypermission.entityid = dbo.acucore_securitygroup.entityid
WHERE containername = 'UI.Web.AccessioningDashboard'
AND permissions = 1
)
)
我錯過了什麼,你有沒有你需要的東西? –
沒有循環。我們有幾百個集裝箱的,所以我不想手動爲每一個運行兩次此。 – MacGyver