Power grid vulnerability is a major concern of modern society, and its protection problem is often formulated as a tri-level defender-attacker-defender model. However, this tri-level problem is compu- tationally challenging. In this paper, we design and implement a Column-and-Constraint Generation algorithm to derive its optimal solutions. Numerical results on an IEEE system show that: (i) the developed algorithm identies optimal solutions in a reasonable time, which signicantly outperforms the existing exact algorithm; (ii) an optimal protection plan from the defender-attacker-defender model always improves the grid survivability under contingencies; and (iii) optimal protection plans demon- strate superior performance over those derived by a heuristic procedure and by attacker-defender model.