diff --git a/src/Entity/Webform.php b/src/Entity/Webform.php
index 10fcb687..0e81b3fd 100644
--- a/src/Entity/Webform.php
+++ b/src/Entity/Webform.php
@@ -956,8 +956,13 @@ class Webform extends ConfigEntityBundleBase implements WebformInterface {
    * {@inheritdoc}
    */
   public function checkAccessRules($operation, AccountInterface $account, WebformSubmissionInterface $webform_submission = NULL) {
-    // Always grant access to user that can administer webforms and submissions.
-    if ($account->hasPermission('administer webform') || $account->hasPermission('administer webform submission')) {
+    // Always grant access to user that can administer webforms.
+    if ($account->hasPermission('administer webform')) {
+      return TRUE;
+    }
+
+    // Grant user with administer websubmissions access to view all webforms.
+    if ($account->hasPermission('administer webform submission') && $webform_submission) {
       return TRUE;
     }
 
diff --git a/src/WebformEntityAccessControlHandler.php b/src/WebformEntityAccessControlHandler.php
index 0bb634d6..223b4da4 100644
--- a/src/WebformEntityAccessControlHandler.php
+++ b/src/WebformEntityAccessControlHandler.php
@@ -65,8 +65,14 @@ class WebformEntityAccessControlHandler extends EntityAccessControlHandler {
 
     // Check submission_* operation.
     if (strpos($operation, 'submission_') === 0) {
-      // Allow users with 'view any webform submission' to view all submissions.
-      if ($operation == 'submission_view_any' && $account->hasPermission('view any webform submission') || ($account->hasPermission('view own webform submission') && $is_owner)) {
+      // Allow users with 'view any webform submission' or
+      // 'administer webform submission' to view all submissions.
+      if ($operation == 'submission_view_any' && ($account->hasPermission('view any webform submission') || $account->hasPermission('administer webform submission'))) {
+        return AccessResult::allowed();
+      }
+
+      // Allow users with 'view own webform submission' to view own submissions.
+      if ($account->hasPermission('view own webform submission') && $is_owner) {
         return AccessResult::allowed();
       }
 
