A consistent query protocol (CQP) allows a database owner to publish a very short string c which commits her and everybody else to a particular database D, so that any copy of the database can later be used to answer queries and give short proofs that the answers are consistent with the commitment c. Here commits means that there is at most one database D that anybody can find (in polynomial time) which is consistent with c. (Unlike in some previous work, this strong guarantee holds even for owners who try to cheat while creating c.) Efficient CQPS for membership and one-dimensional range queries are known [4, 11,16]: given a query pair a, b ∈ ℝ the server answers with all the keys in the database which lie in the interval [a, b] and a proof that the answer is correct. This paper explores CQPS for more general types of databases. We put forward a general technique for constructing CQPS for any type of query, assuming the existence of a data structure/algorithm with certain inherent robustness properties that we define (called a data robust algorithm). We illustrate our technique by constructing an efficient protocol for orthogonal range queries, where the database keys are points in ℝd and a query asks for all keys in a rectangle [a1,b1] x ... x [ad,bd]. Our data-robust algorithm is within a O (log N) factor of the best known standard data structure (a range tree, due to Bentley ). We modify our protocol so that it is also private, that is, the proofs leak no information about the database beyond the query answers. We show a generic modification to ensure privacy based on zero-knowledge proofs, and also give a new, more efficient protocol tailored to hash trees.