This may sound like theoretically void question, because certainly permutation is expressible even on the lowest level of Chomsky hierarchy:
P -> a b c
| a c b
| b a c
| b c a
| c a b
| c b a
In practice, however, proposition that the only way to describe SQL syntax is permuting "where", "group by", "having" (and many more similar clauses in some SQL dialects) is silly.
Boolean grammars allow succinct expression for permutation
X -> a
| b
| c
Y ->
| X
P -> X X X & - Y a Y a Y & - Y b Y b Y & - Y c Y c Y
but perhaps there is a way to do it in the context free realm too?