Sally Donovan- and also a bit of Anderson
This is only my opinion, so please don't hate in the comments. I understand not everyone likes Sally, but I do. I'm not an expert on police procedure, but I've checked the things I included, so it should be accurate.
Sergeant Sally Donovan. People seem to forget that all the characters have a back story and that we don't know the details of them. Sally Donovan has known Sherlock before a Study in Pink and probably has good reasons to dislike him. She isn't just a bitch, she wasn't horrible to John as soon as she met him, she believed Sherlock was dangerous, and was trying to keep John from harm. There are small scenes where we see her with other officers, and she's nice enough there. If we should be hating anyone, we should be hating Sherlock Holmes.
Sherlock is rude and arrogant. He isn't meant to be at the crime scenes. Lestrade said himself that he was breaking the rules letting him in. He walks in and contaminates these crime scenes. He withholds vital information from the police. Sherlock is more interested in solving the crime than locking up the criminal. In Study in Pink, instead of calling Lestrade down, he went off with the cabbie, knowing that then they might not be able to arrest him. There was a surefire way of putting a serial killer away, and he turned it down. As viewers, we are pretty much omnipresent, we see nearly everything Sherlock does. We know he isn't always horrible and that he does have a heart. He cares about John, Molly, Mrs. Hudson and Lestrade. He has the "brain of a scientist or a philosopher and yet he elects to be a detective." Mycroft asks John what we might deduce about Sherlock's heart. He wants to help, he wants to keep people safe. A discovery about atoms isn't highly likely to have a massive impact on most peoples' day to day life. Catching a serial killer will. Sherlock wants to help, make a real difference. So we forgive him for his rudeness and arrogance.
Sally Donovan isn't one of us. She doesn't see everything Sherlock does, she only sees what Sherlock shows her. She sees a psychopath. She sees a man ready to break at a moments notice. The man she sees is no better than Moriarty. Think about it, if you heard there was an amateur detective walking in on and contaminating crime scenes, withholding evidence from the police, you wouldn't be happy. Now, you heard that same man was possibly insane, kept body parts in the fridge, got off on seeing people dead and was possibly on the verge of breaking. Add to that the possibility that that person was a highly dangerous criminal, with access to police files, you would want to send the person that put them away a box of chocolates and the winning lottery numbers.
Sherlock isn't allowed to be at the crime scenes. The Chief Superintendent didn't seem to have any knowledge he was there. If Sally Donovan truly believed he needed to be removed, she could go to the Chief Superintendent. She didn't. Lestrade is Sally's boss, in the police force, there is a strict hierarchy. You don't go over your boss's head. The fact that Sally did was extremely brave, she could come out of that badly. Lestrade would get in trouble for letting Sherlock on the crime scenes, but Sally could get into trouble for going over his head. Sally went over Lestrade's head eventually, but not until children were involved. She didn't do anything until Sherlock found the children from nothing but a footprint, and the girl screamed in terror when she saw Sherlock. Moriarty's lie was convincing, it was wrapped in truth. There was plenty of evidence pointing to Sherlock, Sally would be a bad cop if she didn't press on it.
From what I've seen, a lot of people hate on Sally for having sex with Anderson. So what? She had sex, that's what people do. Nobody seems to hate on Anderson for this, and he's married! Sherlock is constantly rude to both Donovan and Anderson, if someone who was constantly rude came up to you and started prattling on about your sex life, you'd be pissed off at them too.
Hate to break it to you, but Sherlock isn't some innocent child who needs protecting from big, nasty Sally. He's every bit as rude to her and everyone else. The Sherlock Sally sees is a psychopath who keeps eyeballs in the microwave and sits around waiting for a murder. When he found the children with the mercury-laced chocolate, he didn't say "oh, how horrible, those poor children," like any sane person, he says, "neat". If you saw someone react like that,and you already thought they were unstable, that'd be very concerning. It's not just Sally and Anderson Sherlock is rude to, it's everyone. John, Molly and Mrs. Hudson are all used to it, they forgive him because he is a great man and he does care about people close to him. Really though, no one should have to put up with the way Sherlock treats people. The simple difference between Donovan and everyone else, she doesn't. She sees the way Sherlock treats people as wrong, and she doesn't put up with his crap. Why should she?
Sherlock calls both Anderson and Donovan stupid regularly. I'm not sure if Anderson's rank is mentioned, but Sally is a Sergeant. That's no easy task, you have to be a member of the force for years before they'll even consider you, then you have to do a written exam. Many cops spend at least a year studying for these and there is still a high failure rate. Both Sally and Anderson are competent cops. When we see police investigations, Lestrade is present, if he wasn't there, Donovan would be in command. Most police members would reach a Sergeant status and retire not long after, however Sally has achieved this rank in what we can assume to be relatively early in her career. She couldn't have done this if she was a bad cop or stupid.