--- sidebar_position: 62 sidebar_label: Constraints on Settings --- # Constraints on Settings {#constraints-on-settings} The constraints on settings can be defined in the `profiles` section of the `user.xml` configuration file and prohibit users from changing some of the settings with the `SET` query. The constraints are defined as the following: ``` xml lower_boundary upper_boundary lower_boundary upper_boundary ``` If the user tries to violate the constraints an exception is thrown and the setting isn’t changed. There are supported three types of constraints: `min`, `max`, `readonly`. The `min` and `max` constraints specify upper and lower boundaries for a numeric setting and can be used in combination. The `readonly` constraint specifies that the user cannot change the corresponding setting at all. **Example:** Let `users.xml` includes lines: ``` xml 10000000000 0 ... 5000000000 20000000000 ``` The following queries all throw exceptions: ``` sql SET max_memory_usage=20000000001; SET max_memory_usage=4999999999; SET force_index_by_date=1; ``` ``` text Code: 452, e.displayText() = DB::Exception: Setting max_memory_usage should not be greater than 20000000000. Code: 452, e.displayText() = DB::Exception: Setting max_memory_usage should not be less than 5000000000. Code: 452, e.displayText() = DB::Exception: Setting force_index_by_date should not be changed. ``` **Note:** the `default` profile has special handling: all the constraints defined for the `default` profile become the default constraints, so they restrict all the users until they’re overridden explicitly for these users. [Original article](https://clickhouse.com/docs/en/operations/settings/constraints_on_settings/)