Missouri senators have approved a compromise that changes the state's campaign finance and ethics rules.