diff --git a/doc/api/graphql/reference/_index.md b/doc/api/graphql/reference/_index.md
index b5abfe51beef04f6552669638ae490274dd589bf..25d32eb740235025d5d8d46270e44d6cbe8381e9 100644
--- a/doc/api/graphql/reference/_index.md
+++ b/doc/api/graphql/reference/_index.md
@@ -20281,9 +20281,7 @@ Represents an admin member role.
 
 | Name | Type | Description |
 | ---- | ---- | ----------- |
-| <a id="adminmemberrolebaseaccesslevel"></a>`baseAccessLevel` {{< icon name="warning-solid" >}} | [`AccessLevel!`](#accesslevel) | **Introduced** in GitLab 16.5. **Status**: Experiment. Base access level for the custom role. |
 | <a id="adminmemberrolecreatedat"></a>`createdAt` | [`Time!`](#time) | Timestamp of when the member role was created. |
-| <a id="adminmemberroledependentsecuritypolicies"></a>`dependentSecurityPolicies` | [`[ApprovalPolicy!]`](#approvalpolicy) | Array of security policies dependent on the custom role. |
 | <a id="adminmemberroledescription"></a>`description` | [`String`](#string) | Role description. |
 | <a id="adminmemberroledetailspath"></a>`detailsPath` {{< icon name="warning-solid" >}} | [`String`](#string) | **Introduced** in GitLab 17.4. **Status**: Experiment. URL path to the role details webpage. |
 | <a id="adminmemberroleeditpath"></a>`editPath` {{< icon name="warning-solid" >}} | [`String!`](#string) | **Introduced** in GitLab 16.11. **Status**: Experiment. Web UI path to edit the custom role. |
diff --git a/ee/app/graphql/types/member_roles/member_role_type.rb b/ee/app/graphql/types/member_roles/member_role_type.rb
index b3f93fdb675ef71ad99eaabb3df5e52f666564b8..2682a40fad85e39053d32fd1a4255315eeb47d9e 100644
--- a/ee/app/graphql/types/member_roles/member_role_type.rb
+++ b/ee/app/graphql/types/member_roles/member_role_type.rb
@@ -6,14 +6,10 @@ module MemberRoles
     # But it is too complex to be included on a simple MemberRole type
     #
     # rubocop: disable Graphql/AuthorizeTypes -- authorization too complex
-    class MemberRoleType < BaseObject
+    class MemberRoleType < Types::Members::AdminMemberRoleType
       graphql_name 'MemberRole'
       description 'Represents a member role'
 
-      include MemberRolesHelper
-
-      implements Types::Members::RoleInterface
-
       field :base_access_level,
         Types::AccessLevelType,
         null: false,
@@ -26,43 +22,12 @@ class MemberRoleType < BaseObject
         experiment: { milestone: '16.5' },
         description: 'Array of all permissions enabled for the custom role.'
 
-      field :edit_path,
-        GraphQL::Types::String,
-        null: false,
-        experiment: { milestone: '16.11' },
-        description: 'Web UI path to edit the custom role.'
-
-      field :created_at,
-        Types::TimeType,
-        null: false,
-        description: 'Timestamp of when the member role was created.'
-
       field :dependent_security_policies,
         [::Types::SecurityOrchestration::ApprovalPolicyType],
         null: true,
         description: 'Array of security policies dependent on the custom role.',
         resolver: ::Resolvers::Members::ApprovalPolicyResolver
 
-      def members_count
-        return object.members_count if object.respond_to?(:members_count)
-
-        object.members.count
-      end
-
-      def users_count
-        object.users_count if object.respond_to?(:users_count)
-
-        object.users.count
-      end
-
-      def edit_path
-        member_role_edit_path(object)
-      end
-
-      def details_path
-        member_role_details_path(object)
-      end
-
       def enabled_permissions
         object.enabled_permissions(current_user).keys
       end
diff --git a/ee/app/graphql/types/members/admin_member_role_type.rb b/ee/app/graphql/types/members/admin_member_role_type.rb
index 608049c7ca2f4e2bd24188c635120fd33d560843..bb0f7077293220956801924609437277768f61c2 100644
--- a/ee/app/graphql/types/members/admin_member_role_type.rb
+++ b/ee/app/graphql/types/members/admin_member_role_type.rb
@@ -2,17 +2,55 @@
 
 module Types
   module Members
-    class AdminMemberRoleType < Types::MemberRoles::MemberRoleType
+    class AdminMemberRoleType < BaseObject
       graphql_name 'AdminMemberRole'
       description 'Represents an admin member role'
+      include MemberRolesHelper
 
-      authorize :admin_member_role
+      implements Types::Members::RoleInterface
+
+      authorize :read_member_role
 
       field :enabled_permissions,
         ::Types::Members::CustomizableAdminPermissionType.connection_type,
         null: false,
         experiment: { milestone: '17.7' },
-        description: 'Array of all permissions enabled for the custom role.', method: :enabled_admin_permissions
+        description: 'Array of all permissions enabled for the custom role.'
+
+      field :edit_path,
+        GraphQL::Types::String,
+        null: false,
+        experiment: { milestone: '16.11' },
+        description: 'Web UI path to edit the custom role.'
+
+      field :created_at,
+        Types::TimeType,
+        null: false,
+        description: 'Timestamp of when the member role was created.'
+
+      def members_count
+        return object.members_count if object.respond_to?(:members_count)
+
+        object.members.count
+      end
+
+      def users_count
+        object.users_count if object.respond_to?(:users_count)
+
+        object.users.count
+      end
+
+      def edit_path
+        member_role_edit_path(object)
+      end
+
+      def details_path
+        member_role_details_path(object)
+      end
+
+      def enabled_permissions
+        object.enabled_admin_permissions.keys
+      end
     end
   end
 end
diff --git a/ee/spec/graphql/types/members/admin_member_role_type_spec.rb b/ee/spec/graphql/types/members/admin_member_role_type_spec.rb
index 144a1a5acdc6067ea1670b0d4e36d6f53ff098fa..3ee0d1247c398015c7bc0a348ec41ffb0b948753 100644
--- a/ee/spec/graphql/types/members/admin_member_role_type_spec.rb
+++ b/ee/spec/graphql/types/members/admin_member_role_type_spec.rb
@@ -4,10 +4,7 @@
 
 RSpec.describe GitlabSchema.types['AdminMemberRole'], feature_category: :system_access do
   let(:fields) do
-    %w[
-      baseAccessLevel description id name enabledPermissions membersCount
-      dependentSecurityPolicies usersCount editPath detailsPath createdAt
-    ]
+    %w[description id name enabledPermissions membersCount usersCount editPath detailsPath createdAt]
   end
 
   specify { expect(described_class.graphql_name).to eq('AdminMemberRole') }