Обзор
Определение ограничений
profiles файла конфигурации user.xml.
Они запрещают пользователям изменять некоторые настройки с помощью оператора
SET.
Ограничения задаются следующим образом:
Типы ограничений
minmaxdisallowedreadonly(с псевдонимомconst)changeable_in_readonly
min и max задают верхнюю и нижнюю границы для числовой
настройки и могут использоваться совместно.
Ограничение disallowed используется, чтобы указать конкретное значение или набор значений,
которые не допускаются для определенной настройки.
Ограничение readonly или const указывает, что пользователь вообще не может изменять
соответствующую настройку.
Тип ограничения changeable_in_readonly позволяет пользователям изменять настройку
в пределах диапазона min/max, даже если для настройки readonly установлено значение 1;
в противном случае в режиме readonly=1 изменять настройки нельзя.
changeable_in_readonly поддерживается, только если включен параметр settings_constraints_replace_previous:Несколько профилей ограничений
settings_constraints_replace_previous:
- true (рекомендуется): ограничения для одной и той же настройки при объединении заменяются, поэтому используется последнее ограничение, а все предыдущие игнорируются. Это относится и к полям, не заданным в новом ограничении.
- false (по умолчанию): ограничения для одной и той же настройки объединяются так, что каждый незаданный тип ограничения берётся из предыдущего профиля, а каждый заданный тип ограничения заменяется значением из нового профиля.
Режим только для чтения
readonly; не путайте её
с типом ограничения readonly:
readonly=0: Ограничения режима только для чтения отсутствуют.readonly=1: Разрешены только запросы на чтение, а настройки нельзя изменять, если не заданchangeable_in_readonly.readonly=2: Разрешены только запросы на чтение, но настройки можно изменять, за исключением самой настройкиreadonly.
Пример
users.xml содержит следующие строки:
Профиль
default обрабатывается особым образом: все ограничения, заданные для
профиля default, становятся ограничениями по умолчанию, поэтому они применяются ко всем пользователям,
пока для них явно не заданы другие.Ограничения на настройки MergeTree
<constraints> к нему
необходимо добавлять префикс merge_tree_.
Пример
storage_policy