메인 콘텐츠로 건너뛰기
이 가이드에서는 SQL 콘솔과 데이터베이스에서 직접 데이터베이스 사용자를 관리하는 두 가지 방법을 설명합니다.

SQL 콘솔 무암호 인증

SQL 콘솔 사용자는 각 세션마다 생성되며, 자동으로 교체되는 X.509 인증서를 사용해 인증됩니다. 세션이 종료되면 해당 사용자는 삭제됩니다. 감사용 액세스 목록을 생성할 때는 콘솔에서 해당 서비스의 설정 탭으로 이동한 다음, 데이터베이스에 존재하는 데이터베이스 사용자뿐 아니라 SQL 콘솔 액세스도 함께 확인하십시오. 사용자 지정 역할이 구성된 경우, 사용자의 액세스 권한은 사용자 이름으로 끝나는 역할에 나열됩니다.

SQL 콘솔 사용자 및 역할

기본 SQL 콘솔 역할은 Service Read Only 및 Service Admin 권한이 있는 사용자에게 할당할 수 있습니다. 자세한 내용은 SQL 콘솔 역할 할당 관리를 참조하십시오. 이 가이드에서는 SQL 콘솔 사용자를 위한 사용자 지정 역할을 만드는 방법을 설명합니다. SQL 콘솔 사용자를 위한 사용자 지정 역할을 만들고 일반 역할을 부여하려면 다음 명령을 실행하십시오. 이메일 주소는 콘솔에 등록된 사용자의 이메일 주소와 일치해야 합니다.
1

database_developer 생성 및 권한 부여

database_developer 역할을 생성하고 SHOW, CREATE, ALTER, DELETE 권한을 부여합니다.
CREATE ROLE OR REPLACE database_developer;
GRANT SHOW ON * TO database_developer;
GRANT CREATE ON * TO database_developer;
GRANT ALTER ON * TO database_developer;
GRANT DELETE ON * TO database_developer;
2

SQL 콘솔 사용자 역할 생성

SQL 콘솔 사용자 my.user@domain.com용 역할을 생성하고 database_developer 역할을 할당합니다.
CREATE ROLE OR REPLACE `sql-console-role:my.user@domain.com`;
GRANT database_developer TO `sql-console-role:my.user@domain.com`;
3

사용자가 SQL 콘솔을 사용할 때 새 역할이 할당됩니다

사용자가 SQL 콘솔을 사용할 때마다 이메일 주소에 연결된 역할이 할당됩니다.

데이터베이스 인증

데이터베이스 사용자 ID 및 비밀번호

비밀번호를 안전하게 보호하려면 사용자 계정을 생성할 때 SHA256_hash 방식을 사용하십시오. ClickHouse 데이터베이스 비밀번호는 최소 12자 이상이어야 하며, 복잡도 요구 사항도 충족해야 합니다. 즉, 대문자, 소문자, 숫자 및/또는 특수 문자를 포함해야 합니다.
비밀번호를 안전하게 생성하세요관리자 권한이 없는 사용자는 자신의 비밀번호를 직접 설정할 수 없으므로, 관리자가 계정을 설정할 수 있도록 사용자에게 이 도구와 같은 생성기를 사용해 비밀번호를 해시한 후 관리자에게 전달하도록 요청하십시오.
CREATE USER userName IDENTIFIED WITH sha256_hash BY 'hash';

SSH 인증을 사용하는 데이터베이스 사용자

ClickHouse Cloud 데이터베이스 사용자에 SSH 인증을 설정하는 방법입니다.
  1. ssh-keygen을 사용하여 키 쌍을 생성합니다.
  2. 공개 키를 사용하여 사용자를 생성합니다.
  3. 사용자에게 역할 및/또는 권한을 할당합니다.
  4. 개인 키를 사용하여 서비스에 인증합니다.
예시가 포함된 자세한 단계별 안내는 Knowledgebase의 How to connect to ClickHouse Cloud using SSH keys를 참조하십시오.

데이터베이스 권한

SQL GRANT 문을 사용하여 서비스와 데이터베이스에서 다음 항목을 구성하십시오.
역할설명
기본서비스에 대한 전체 관리자 액세스
사용자 지정SQL GRANT 문을 사용하여 구성하십시오
  • 데이터베이스 역할은 누적됩니다. 즉, 사용자가 두 역할의 구성원인 경우 두 역할 중 더 높은 수준의 액세스 권한이 부여됩니다. 역할을 추가해도 기존 액세스 권한이 사라지지 않습니다.
  • 데이터베이스 역할은 다른 역할에 부여할 수 있으므로 계층 구조를 만들 수 있습니다. 역할은 자신이 구성원인 역할의 모든 권한을 상속합니다.
  • 데이터베이스 역할은 서비스별로 고유하며, 동일한 서비스 내의 여러 데이터베이스에 적용할 수 있습니다.
아래 그림은 사용자에게 권한이 부여될 수 있는 다양한 방법을 보여줍니다.

초기 설정

데이터베이스에는 default라는 계정이 자동으로 추가되며, 서비스가 생성될 때 default_role이 부여됩니다. 서비스를 생성한 사용자에게는 서비스 생성 시 default 계정에 할당된 자동 생성 임시 비밀번호가 표시됩니다. 이 비밀번호는 초기 설정 이후에는 다시 표시되지 않지만, 이후 콘솔에서 Service Admin 권한이 있는 사용자가 변경할 수 있습니다. 이 계정이나 콘솔에서 Service Admin 권한을 가진 계정은 언제든지 추가 데이터베이스 사용자와 역할을 설정할 수 있습니다.
콘솔에서 default 계정에 할당된 비밀번호를 변경하려면 왼쪽의 Services 메뉴로 이동한 다음 해당 서비스로 들어가 설정 탭에서 Reset password 버튼을 클릭하십시오.
개인별로 새 사용자 계정을 만들고 해당 사용자에게 default_role을 부여하는 것을 권장합니다. 이렇게 하면 사용자가 수행한 작업을 해당 사용자 ID와 연결해 식별할 수 있으며, default 계정은 비상 대응용 작업에만 남겨 둘 수 있습니다.
  CREATE USER userID IDENTIFIED WITH sha256_hash by 'hashed_password';
  GRANT default_role to userID;
적절한 복잡성을 갖춘 12자 이상의 password를 SHA256 문자열로 변환하려면 SHA256 해시 생성기나 Python의 hashlib 같은 함수를 사용할 수 있으며, 이렇게 변환한 값을 시스템 관리자에게 password로 제공할 수 있습니다. 이렇게 하면 관리자가 평문 password를 보거나 직접 다루지 않게 됩니다.

SQL 콘솔 사용자를 포함한 데이터베이스 액세스 목록

다음 절차를 사용하면 조직의 SQL 콘솔과 데이터베이스 전반에 대한 전체 액세스 목록을 생성할 수 있습니다.
1

모든 데이터베이스 권한 부여 목록 가져오기

다음 쿼리를 실행하여 데이터베이스의 모든 권한 부여 목록을 가져오십시오.
SELECT grants.user_name,
grants.role_name,
users.name AS role_member,
grants.access_type,
grants.database,
grants.table
FROM system.grants LEFT OUTER JOIN system.role_grants ON grants.role_name = role_grants.granted_role_name
LEFT OUTER JOIN system.users ON role_grants.user_name = users.name

UNION ALL

SELECT grants.user_name,
grants.role_name,
role_grants.role_name AS role_member,
grants.access_type,
grants.database,
grants.table
FROM system.role_grants LEFT OUTER JOIN system.grants ON role_grants.granted_role_name = grants.role_name
WHERE role_grants.user_name is null;
2

SQL 콘솔에 액세스할 수 있는 콘솔 사용자와 권한 부여 목록 연결

이 목록을 SQL 콘솔에 액세스할 수 있는 콘솔 사용자와 연결합니다.a. 콘솔로 이동합니다.b. 관련 service를 선택합니다.c. 왼쪽에서 설정을 선택합니다.d. SQL 콘솔 액세스 섹션까지 아래로 스크롤합니다.e. 사용자 목록을 보려면 There are # users with access to this service. 링크를 클릭합니다.

웨어하우스 사용자

웨어하우스 사용자는 동일한 웨어하우스 내의 서비스 간에 공유됩니다. 자세한 내용은 웨어하우스 액세스 제어를 참조하십시오.
마지막 수정일 2026년 6월 10일