user_* 서버 설정
user_* 서버 설정
이 설정들은 ClickHouse 서버의 사용자 디렉터리, 사용자 파일 경로, 사용자 스크립트 경로를 정의해요. ClickHouse 소스 코드에서 자동으로 생성된 참조 문서예요.
출처: 문서
본문
이 설정들은 ClickHouse 서버를 구성하며 ClickHouse 소스 코드에서 자동으로 생성돼요.
user_directories
다음 설정을 포함하는 구성 파일의 섹션이에요:
- 사전 정의된 사용자가 있는 구성 파일의 경로.
- SQL 명령으로 생성된 사용자가 저장되는 폴더의 경로.
- SQL 명령으로 생성된 사용자가 저장되고 복제되는 ZooKeeper 노드 경로.
이 섹션이 지정되면 users_config와 access_control_path의 경로는 사용되지 않아요.
user_directories 섹션은 항목을 원하는 만큼 포함할 수 있으며, 항목의 순서는 우선순위를 의미해요(위에 있을수록 우선순위가 높아요).
예시
<user_directories>
<users_xml>
<path>/etc/clickhouse-server/users.xml</path>
</users_xml>
<local_directory>
<path>/var/lib/clickhouse/access/</path>
</local_directory>
</user_directories>
사용자, 역할, 행 정책, 할당량, 프로필은 ZooKeeper에도 저장할 수 있어요:
<user_directories>
<users_xml>
<path>/etc/clickhouse-server/users.xml</path>
</users_xml>
<replicated>
<zookeeper_path>/clickhouse/access/</zookeeper_path>
</replicated>
</user_directories>
또한 memory 섹션(정보를 디스크에 쓰지 않고 메모리에만 저장)과 ldap 섹션(정보를 LDAP 서버에 저장)을 정의할 수도 있어요.
로컬에 정의되지 않은 사용자의 원격 사용자 디렉터리로 LDAP 서버를 추가하려면, 다음 설정과 함께 단일 ldap 섹션을 정의해요:
| 설정 | 설명 |
|---|---|
roles |
LDAP 서버에서 가져온 각 사용자에게 할당될 로컬 정의 역할 목록이 있는 섹션. 역할이 지정되지 않으면 사용자는 인증 후 어떤 작업도 수행할 수 없어요. 인증 시점에 나열된 역할 중 하나라도 로컬에 정의되어 있지 않으면, 제공된 비밀번호가 틀린 것처럼 인증 시도가 실패해요. |
server |
ldap_servers 구성 섹션에 정의된 LDAP 서버 이름 중 하나. 이 파라미터는 필수이며 비어 있을 수 없어요. |
예시
<ldap>
<server>my_ldap_server</server>
<roles>
<my_local_role1 />
<my_local_role2 />
</roles>
</ldap>
user_files_path
사용자 파일이 있는 디렉터리예요. 테이블 함수 file(), fileCluster()에서 사용돼요.
예시
<user_files_path>/var/lib/clickhouse/user_files/</user_files_path>
user_profile_events_per_cpu
높은 스레드 수에서 CPU 간 캐시 라인 경합을 피하기 위해 사용자별 ProfileEvents 카운터를 CPU별로 샤딩해요. 각 사용자는 getNumCPUs() * num_events * sizeof(atomic)만큼의 메모리(코어가 많은 머신에서는 수백 KiB)를 사용해요. 비활성화하면 사용자당 이벤트별 단일 공유 atomic으로 되돌아가며, 처리량을 메모리와 맞바꿔요.
user_scripts_path
사용자 스크립트 파일이 있는 디렉터리예요. 실행 가능한 사용자 정의 함수 Executable User Defined Functions에 사용돼요.
예시
<user_scripts_path>/var/lib/clickhouse/user_scripts/</user_scripts_path>