diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 5c86a13..d3a83e0 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -711,6 +711,7 @@ function node_user_predelete($account) {
   // @todo Introduce node_mass_delete() or make node_mass_update() more flexible.
   $nids = \Drupal::entityQuery('node')
     ->condition('uid', $account->id())
+    ->accessCheck(FALSE)
     ->execute();
   entity_delete_multiple('node', $nids);
   // Delete old revisions.
diff --git a/core/modules/user/src/Tests/UserCancelTest.php b/core/modules/user/src/Tests/UserCancelTest.php
index 4ce4d91..7e4ce72 100644
--- a/core/modules/user/src/Tests/UserCancelTest.php
+++ b/core/modules/user/src/Tests/UserCancelTest.php
@@ -594,4 +594,20 @@ function testMassUserCancelByAdmin() {
     $this->assertTrue($user1->isActive(), 'User #1 still exists and is not blocked.');
   }
 
+  /**
+   * Tests user cancel with node access.
+   */
+  function testUserDeleteWithContentAndNodeAccess() {
+
+    \Drupal::service('module_installer')->install(['node_access_test']);
+    // Rebuild node access because private module is enabled.
+    node_access_rebuild();
+
+    $account = $this->drupalCreateUser(['access content']);
+    $node = $this->drupalCreateNode(['type' => 'page', 'uid' => $account->id()]);
+    $account->delete();
+    $load2 = \Drupal::entityTypeManager()->getStorage('node')->load($node->id());
+    $this->assertTrue(empty($load2));
+  }
+
 }
