Paige was like that too around the time we first got her (she is half dachshund). She would snap whenever people would be around me or her toys. She is still protective, but hasn't snapped in months.
We learned a combination of to respect her boundaries, and to teach her we will never take away her toys or her favorite person. Everyone in my family makes her do tricks, gives her treats, pets her, and respects her space when she is laying there with a toy and wants to be left alone. I occasionally have to remind my youngest sibling to leave her alone when she just wants to cuddle with her toy. For guarding me, it took all of the above, plus different rotations of people feeding her plus me encouraging her to be independent. She isn't by nature, but somebody in my family rewards her when she isn't around me. That way, she knows it's okay to be with other people.
I would do a combination of these things too, just alter them for your situation. How old is your grandson? I would never leave them alone together and well...I'm not sure to be entirely honest. I am not going to give specific advice here since I do not want to misguide you. It's just, the last time I had a dog around a young person, I was 4 years old myself, haha!
But, encouraging, treating, petting, having your husband feed your dachshund, having your husband make the dog do tricks, all that should help with that situation. I am just unsure about the grandson part, since he is probably extremely little and I don't want to give wrong advice.