Answer :

The sulphate ion forms because all 5 atoms in it have a full octet of outer electrons. 
It's just that it needs two more electrons than there are protons in the nuclei of the five atoms that make it up. 
Electrons are shared between the sulphur and oxygen, so there are regular covalent bonds. 
But to complete the octets, two extra electrons are needed. 
that's what gives it the 2- charge. 
Covalent bonds hold the ion together. 
Ionic bonds hold the sulphate ion close to the metal ion in, for example, magnesium sulphate.