I've managed to solve this isse by adding the service account manually to sql by using following command:
EXEC sp_addrolemember 'SPDataAccess', 'SPServiceAccount';
To view the SPDataAccess Role membership on the database you can use the following query:
SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.name = 'SPDataAccess'
ORDER BY DP1.name;
This is the query the SPHA rules querys against the database, if everything works as expected it should return 1.
declare @p5 int
set @p5=0
exec sp_executesql N'select @is_member = COUNT(1) FROM
sys.database_role_members AS i
JOIN sys.database_principals AS n ON i.role_principal_id = n.principal_id
JOIN sys.database_principals AS m ON i.member_principal_id = m.principal_id
WHERE n.name = @role AND m.Name = @user_name',N'@user_name nvarchar(128),@role nvarchar(128),@is_member int output',@user_name=N'SPServiceAccount',@role=N'SPDataAccess',@is_member=@p5 output
select @p5
Thanks,
Pelle