Skip to content

Commit b4b7678

Browse files
Revert "Update-SqlPermission - Fix SMO reader conflicts during permission sync (review of #10291)"
This reverts commit 0e95414.
1 parent db82668 commit b4b7678

3 files changed

Lines changed: 7 additions & 374 deletions

File tree

docs/trackers/features/commit-bug-review-TRACKER.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Find real bugs (logic errors, null refs, incorrect behavior) and fix them. Skip
103103
| df60d986f | Export-DbaUser - Add schema ownership to exported scripts (#10275) | DONE | Guarded SQL Server 2000 schema ownership scripting and added regression coverage. |
104104
| 7b349b546 | Test-DbaPath - Handle xp_fileexist execution failures gracefully (#10288) | DONE | Restored -EnableException behavior for xp_fileexist failures and added unit regression tests. |
105105
| 89c06e287 | Invoke-DbaCycleErrorLog - Fix example command names (#10290) | DONE | Reviewed help-text-only example-name fix; no bugs found. |
106-
| 899cdc30c | Update-SqlPermission - Remove unnecessary SqlConnectionObject.Close() calls (#10291) | DONE | Materialized SMO enumerations to avoid open DataReader conflicts and added a unit regression test. |
106+
| 899cdc30c | Update-SqlPermission - Remove unnecessary SqlConnectionObject.Close() calls (#10291) | DONE | Initial materialize-SMO-enumerations fix (0e954140a) broke Copy-DbaLogin and Sync-DbaLoginPermission and was reverted; needs a more complete patch. |
107107
| 97d03bee3 | Restore-DbaDatabase - Add -StopAtLsn parameter for LSN-based restore (#10245) | DONE | Normalized StopAtLsn input so sys.fn_dblog and lsn:-prefixed values restore correctly; added unit regression tests. |
108108
| 1fdfddee6 | New-DbaFirewallRule - Fix binary path extraction and remove dead code (#10294) | DONE | Bounded sqlservr.exe/sqlbrowser.exe extraction so folder names do not produce invalid Program rules; added unit regression tests. |
109109
| aaa8f9eaa | Add ReleaseDate for SQL Server releases to buildref-index / Get-DbaBuild / Test-DbaBuild / Add -MaxTimeBehind (#10277) | DONE | Added ReleaseDate twice in Test-DbaBuild output; already corrected by follow-up commit 13807a2b3 (#10328). |

private/functions/Update-SqlPermission.ps1

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function Update-SqlPermission {
6161
}
6262

6363
# Server Roles: sysadmin, bulklogin, etc
64-
foreach ($role in @($SourceServer.Roles)) {
64+
foreach ($role in $SourceServer.Roles) {
6565
$roleName = $role.Name
6666
$destRole = $DestServer.Roles[$roleName]
6767

@@ -107,7 +107,7 @@ function Update-SqlPermission {
107107
}
108108
}
109109

110-
$ownedJobs = @($SourceServer.JobServer.Jobs | Where-Object OwnerLoginName -eq $loginName)
110+
$ownedJobs = $SourceServer.JobServer.Jobs | Where-Object OwnerLoginName -eq $loginName
111111
foreach ($ownedJob in $ownedJobs) {
112112
if ($null -ne $DestServer.JobServer.Jobs[$ownedJob.Name]) {
113113
if ($Pscmdlet.ShouldProcess($destination, "Changing of job owner to $newLoginName for $($ownedJob.Name).")) {
@@ -205,7 +205,7 @@ function Update-SqlPermission {
205205
}
206206

207207
# For Sync, if info doesn't exist in EnumDatabaseMappings, then no big deal.
208-
foreach ($db in @($DestLogin.EnumDatabaseMappings())) {
208+
foreach ($db in $DestLogin.EnumDatabaseMappings()) {
209209
$dbName = $db.DbName
210210
$destDb = $DestServer.Databases[$dbName]
211211
$sourceDb = $SourceServer.Databases[$dbName]
@@ -288,7 +288,7 @@ function Update-SqlPermission {
288288
}
289289

290290
# Adding database mappings and securables
291-
foreach ($db in @($SourceLogin.EnumDatabaseMappings())) {
291+
foreach ($db in $SourceLogin.EnumDatabaseMappings()) {
292292
$dbName = $db.DbName
293293
$destDb = $DestServer.Databases[$dbName]
294294
$sourceDb = $SourceServer.Databases[$dbName]
@@ -347,7 +347,7 @@ function Update-SqlPermission {
347347
}
348348
} else {
349349
# Database Roles: db_owner, db_datareader, etc
350-
foreach ($role in @($sourceDb.Roles)) {
350+
foreach ($role in $sourceDb.Roles) {
351351
if ($role.EnumMembers() -contains $loginName) {
352352
$roleName = $role.Name
353353
$destDbRole = $destDb.Roles[$roleName]

0 commit comments

Comments
 (0)