- ClickHouse 사용자 계정 또는 역할에 권한을 부여합니다.
- 사용자 계정이나 다른 역할에 역할을 할당합니다.
권한 부여 구문
privilege— 권한의 유형입니다.role— ClickHouse 사용자 역할입니다.user— ClickHouse 사용자 계정입니다.
WITH GRANT OPTION 절은 user 또는 role에 GRANT 쿼리를 실행할 수 있는 권한을 부여합니다. 사용자는 자신이 보유한 것과 동일한 범위 또는 그보다 좁은 범위의 권한을 부여할 수 있습니다.
WITH REPLACE OPTION 절은 user 또는 role의 기존 권한을 새 권한으로 대체하며, 지정하지 않으면 권한을 추가합니다.
역할 할당 구문
role— ClickHouse 사용자 역할.user— ClickHouse 사용자 계정.
WITH ADMIN OPTION 절은 user 또는 role에 ADMIN OPTION 권한을 부여합니다.
WITH REPLACE OPTION 절은 user 또는 role의 기존 역할을 새 역할로 대체하고, 지정하지 않으면 역할을 추가합니다.
GRANT CURRENT GRANTS 구문
privilege— 권한의 유형입니다.role— ClickHouse 사용자 역할입니다.user— ClickHouse 사용자 계정입니다.
CURRENT GRANTS 문을 사용하면 지정된 사용자 또는 역할에 명시한 모든 권한을 부여할 수 있습니다.
권한을 하나도 지정하지 않으면 지정된 사용자 또는 역할에 CURRENT_USER에 대해 사용 가능한 모든 권한이 부여됩니다.
사용법
GRANT를 사용하려면 계정에 GRANT OPTION 권한이 있어야 합니다. 권한은 계정에 부여된 권한 범위 내에서만 부여할 수 있습니다.
예를 들어, 관리자는 다음 쿼리를 사용해 john 계정에 권한을 부여했습니다.
john에게 다음을 실행할 권한이 있음을 의미합니다.
SELECT x,y FROM db.table.SELECT x FROM db.table.SELECT y FROM db.table.
john은 SELECT z FROM db.table를 실행할 수 없습니다. SELECT * FROM db.table도 사용할 수 없습니다. ClickHouse는 이 쿼리를 처리할 때 x와 y를 포함해 어떤 데이터도 반환하지 않습니다. 유일한 예외는 테이블에 x와 y 컬럼만 있는 경우입니다. 이 경우 ClickHouse는 모든 데이터를 반환합니다.
또한 john은 GRANT OPTION 권한도 가지고 있으므로, 동일하거나 더 좁은 범위의 권한을 다른 사용자에게 부여할 수 있습니다.
system 데이터베이스에 대한 접근은 항상 허용됩니다(이 데이터베이스는 쿼리 처리에 사용되기 때문입니다).
기본적으로 새 사용자가 접근할 수 있는 시스템 테이블은 많지만, 권한 부여 없이는 모든 시스템 테이블에 기본적으로 접근할 수 있는 것은 아닙니다.
또한
system.zookeeper와 같은 일부 시스템 테이블에 대한 접근은 보안상의 이유로 Cloud 사용자에게 제한됩니다.GRANT SELECT, INSERT ON *.* TO john, robin 쿼리를 사용하면 계정 john과 robin은 서버의 모든 데이터베이스에 있는 모든 테이블에서 INSERT 및 SELECT 쿼리를 실행할 수 있습니다.
와일드카드 권한 부여
*)를 사용할 수 있습니다. 예를 들어 GRANT SELECT ON db.* TO john 쿼리는 john이 db 데이터베이스의 모든 테이블에서 SELECT 쿼리를 실행할 수 있도록 합니다.
또한 데이터베이스 이름을 생략할 수도 있습니다. 이 경우 권한은 현재 데이터베이스에 부여됩니다.
예를 들어 GRANT SELECT ON * TO john은 현재 데이터베이스의 모든 테이블에 권한을 부여하고, GRANT SELECT ON mytable TO john은 현재 데이터베이스의 mytable 테이블에 권한을 부여합니다.
아래에서 설명하는 기능은 ClickHouse 24.10 버전부터 사용할 수 있습니다.
GRANT SELECT ON db.my_tables* TO john. 이 쿼리는 john이 db 데이터베이스에서 my_tables* 접두사를 가진 모든 테이블에 대해 SELECT 쿼리를 실행할 수 있도록 합니다.
추가 예시:
GRANT SELECT ON db.my_tables* TO john
GRANT SELECT ON db*.* TO john
GRANT SELECT ON db.* TO john 쿼리를 실행한 다음 새 테이블 db.new_table을 생성하면 사용자 john은 SELECT * FROM db.new_table 쿼리를 실행할 수 있습니다.
별표는 오직 프리픽스에만 지정할 수 있습니다:
권한
ALL액세스 관리ALLOW SQL SECURITY NONEALTER QUOTAALTER ROLEALTER ROW POLICYALTER SETTINGS PROFILEALTER USERCREATE QUOTACREATE ROLECREATE ROW POLICYCREATE SETTINGS PROFILECREATE USERDROP QUOTADROP ROLEDROP ROW POLICYDROP SETTINGS PROFILEDROP USERROLE ADMINSHOW ACCESSSHOW QUOTASSHOW ROLESSHOW ROW POLICIESSHOW SETTINGS PROFILESSHOW USERS
ALTERALTER DATABASEALTER DATABASE SETTINGS
ALTER TABLEALTER COLUMNALTER ADD COLUMNALTER CLEAR COLUMNALTER COMMENT COLUMNALTER DROP COLUMNALTER MATERIALIZE COLUMNALTER MODIFY COLUMNALTER RENAME COLUMN
ALTER CONSTRAINTALTER ADD CONSTRAINTALTER DROP CONSTRAINT
ALTER DELETEALTER FETCH PARTITIONALTER FREEZE PARTITIONALTER INDEXALTER ADD INDEXALTER CLEAR INDEXALTER DROP INDEXALTER MATERIALIZE INDEXALTER ORDER BYALTER SAMPLE BY
ALTER MATERIALIZE TTLALTER MODIFY COMMENTALTER MOVE PARTITIONALTER PROJECTIONALTER SETTINGSALTER STATISTICSALTER ADD STATISTICSALTER DROP STATISTICSALTER MATERIALIZE STATISTICSALTER MODIFY STATISTICS
ALTER TTLALTER UPDATEALTER TABLE EXECUTE
ALTER VIEWALTER VIEW MODIFY QUERYALTER VIEW REFRESHALTER VIEW MODIFY SQL SECURITY
BACKUPCLUSTERCREATECREATE ARBITRARY TEMPORARY TABLECREATE TEMPORARY TABLE
CREATE DATABASECREATE DICTIONARYCREATE FUNCTIONCREATE RESOURCECREATE TABLECREATE VIEWCREATE WORKLOAD
dictGetdisplaySecretsInShowAndSelectDROPDROP DATABASEDROP DICTIONARYDROP FUNCTIONDROP RESOURCEDROP TABLEDROP VIEWDROP WORKLOAD
INSERT내부 검사addressToLineaddressToLineWithInlinesaddressToSymboldemangle
KILL QUERYKILL TRANSACTIONMOVE PARTITION BETWEEN SHARDSNAMED COLLECTION ADMINALTER NAMED COLLECTIONCREATE NAMED COLLECTIONDROP NAMED COLLECTIONNAMED COLLECTIONSHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS
OPTIMIZESELECTSET DEFINERSHOWSHOW COLUMNSSHOW DATABASESSHOW DICTIONARIESSHOW TABLES
SHOW FILESYSTEM CACHESSOURCESAZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
SYSTEMSYSTEM CLEANUPSYSTEM DROP CACHESYSTEM DROP COMPILED EXPRESSION CACHESYSTEM DROP CONNECTIONS CACHESYSTEM DROP DISTRIBUTED CACHESYSTEM DROP DNS CACHESYSTEM DROP FILESYSTEM CACHESYSTEM DROP FORMAT SCHEMA CACHESYSTEM DROP MARK CACHESYSTEM DROP MMAP CACHESYSTEM DROP PAGE CACHESYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP QUERY CACHESYSTEM DROP S3 CLIENT CACHESYSTEM DROP SCHEMA CACHESYSTEM DROP UNCOMPRESSED CACHE
SYSTEM DROP PRIMARY INDEX CACHESYSTEM DROP REPLICASYSTEM FAILPOINTSYSTEM FETCHESSYSTEM FLUSHSYSTEM FLUSH ASYNC INSERT QUEUESYSTEM FLUSH LOGS
SYSTEM JEMALLOCSYSTEM KILL QUERYSYSTEM KILL TRANSACTIONSYSTEM LISTENSYSTEM LOAD PRIMARY KEYSYSTEM MERGESSYSTEM MOVESSYSTEM PULLING REPLICATION LOGSYSTEM REDUCE BLOCKING PARTSSYSTEM REPLICATION QUEUESSYSTEM REPLICA READINESSSYSTEM RESTART DISKSYSTEM RESTART REPLICASYSTEM RESTORE REPLICASYSTEM RELOADSYSTEM RELOAD ASYNCHRONOUS METRICSSYSTEM RELOAD CONFIGSYSTEM RELOAD DICTIONARYSYSTEM RELOAD EMBEDDED DICTIONARIESSYSTEM RELOAD FUNCTIONSYSTEM RELOAD MODELSYSTEM RELOAD USERS
SYSTEM SENDSSYSTEM DISTRIBUTED SENDSSYSTEM REPLICATED SENDS
SYSTEM SHUTDOWNSYSTEM SYNC DATABASE REPLICASYSTEM SYNC FILE CACHESYSTEM SYNC FILESYSTEM CACHESYSTEM SYNC REPLICASYSTEM SYNC TRANSACTION LOGSYSTEM THREAD FUZZERSYSTEM TTL MERGESSYSTEM UNFREEZESYSTEM UNLOAD PRIMARY KEYSYSTEM VIEWSSYSTEM VIRTUAL PARTS UPDATESYSTEM WAIT LOADING PARTS
테이블 엔진TRUNCATEUNDROP TABLE
NONE
ALTER권한에는 다른 모든ALTER*권한이 포함됩니다.ALTER CONSTRAINT권한에는ALTER ADD CONSTRAINT및ALTER DROP CONSTRAINT권한이 포함됩니다.
COLUMN— 권한은 컬럼, 테이블, 데이터베이스 또는 전역에 부여할 수 있습니다.TABLE— 권한은 테이블, 데이터베이스 또는 전역에 부여할 수 있습니다.VIEW— 권한은 뷰, 데이터베이스 또는 전역에 부여할 수 있습니다.DICTIONARY— 권한은 딕셔너리, 데이터베이스 또는 전역에 부여할 수 있습니다.DATABASE— 권한은 데이터베이스 또는 전역에 부여할 수 있습니다.GLOBAL— 권한은 전역에만 부여할 수 있습니다.GROUP— 서로 다른 수준의 권한을 그룹화합니다.GROUP수준의 권한이 부여되면, 그룹에 속한 권한 중 사용된 구문에 해당하는 권한만 부여됩니다.
GRANT SELECT(x) ON db.table TO userGRANT SELECT ON db.* TO user
GRANT CREATE USER(x) ON db.table TO userGRANT CREATE USER ON db.* TO user
SELECT, CREATE TABLE, INSERT, DROP TABLE 권한이 필요합니다.
SELECT
COLUMN.
설명
이 권한이 부여된 사용자는 지정된 데이터베이스와 테이블에서 지정된 컬럼 목록에 대해 SELECT 쿼리를 실행할 수 있습니다. 사용자가 지정된 컬럼 외의 다른 컬럼을 포함하면 쿼리 결과가 반환되지 않습니다.
다음 권한을 살펴보겠습니다:
john은 db.table의 x 및/또는 y 컬럼 데이터를 포함하는 모든 SELECT 쿼리를 실행할 수 있습니다. 예를 들어 SELECT x FROM db.table은 실행할 수 있습니다. john은 SELECT z FROM db.table은 실행할 수 없습니다. SELECT * FROM db.table도 실행할 수 없습니다. 이 쿼리를 처리할 때 ClickHouse는 x와 y를 포함해 어떤 데이터도 반환하지 않습니다. 유일한 예외는 테이블에 x와 y 컬럼만 있는 경우이며, 이때는 ClickHouse가 모든 데이터를 반환합니다.
INSERT
COLUMN.
설명
이 권한이 부여된 사용자는 지정된 데이터베이스와 테이블의 지정된 컬럼 목록에 대해 INSERT 쿼리를 실행할 수 있습니다. 지정된 컬럼 외의 다른 컬럼이 포함되면 해당 쿼리는 데이터를 삽입하지 않습니다.
예시
john은 db.table의 x 및/또는 y 컬럼에 데이터를 삽입할 수 있습니다.
ALTER
ALTER. 수준:COLUMN.ALTER TABLE. 수준:GROUPALTER UPDATE. 수준:COLUMN. 별칭:UPDATEALTER DELETE. 수준:COLUMN. 별칭:DELETEALTER COLUMN. 수준:GROUPALTER ADD COLUMN. 수준:COLUMN. 별칭:ADD COLUMNALTER DROP COLUMN. 수준:COLUMN. 별칭:DROP COLUMNALTER MODIFY COLUMN. 수준:COLUMN. 별칭:MODIFY COLUMNALTER COMMENT COLUMN. 수준:COLUMN. 별칭:COMMENT COLUMNALTER CLEAR COLUMN. 수준:COLUMN. 별칭:CLEAR COLUMNALTER RENAME COLUMN. 수준:COLUMN. 별칭:RENAME COLUMNALTER INDEX. 수준:GROUP. 별칭:INDEXALTER ORDER BY. 수준:TABLE. 별칭:ALTER MODIFY ORDER BY,MODIFY ORDER BYALTER SAMPLE BY. 수준:TABLE. 별칭:ALTER MODIFY SAMPLE BY,MODIFY SAMPLE BYALTER ADD INDEX. 수준:TABLE. 별칭:ADD INDEXALTER DROP INDEX. 수준:TABLE. 별칭:DROP INDEXALTER MATERIALIZE INDEX. 수준:TABLE. 별칭:MATERIALIZE INDEXALTER CLEAR INDEX. 수준:TABLE. 별칭:CLEAR INDEXALTER CONSTRAINT. 수준:GROUP. 별칭:CONSTRAINTALTER ADD CONSTRAINT. 수준:TABLE. 별칭:ADD CONSTRAINTALTER DROP CONSTRAINT. 수준:TABLE. 별칭:DROP CONSTRAINTALTER TTL. 수준:TABLE. 별칭:ALTER MODIFY TTL,MODIFY TTLALTER MATERIALIZE TTL. 수준:TABLE. 별칭:MATERIALIZE TTLALTER SETTINGS. 수준:TABLE. 별칭:ALTER SETTING,ALTER MODIFY SETTING,MODIFY SETTINGALTER MOVE PARTITION. 수준:TABLE. 별칭:ALTER MOVE PART,MOVE PARTITION,MOVE PARTALTER FETCH PARTITION. 수준:TABLE. 별칭:ALTER FETCH PART,FETCH PARTITION,FETCH PARTALTER FREEZE PARTITION. 수준:TABLE. 별칭:FREEZE PARTITIONALTER EXECUTE. 수준:TABLE. 별칭:ALTER TABLE EXECUTEALTER VIEW. 수준:GROUPALTER VIEW REFRESH. 수준:VIEW. 별칭:REFRESH VIEWALTER VIEW MODIFY QUERY. 수준:VIEW. 별칭:ALTER TABLE MODIFY QUERYALTER VIEW MODIFY SQL SECURITY. 수준:VIEW. 별칭:ALTER TABLE MODIFY SQL SECURITY
ALTER권한에는 다른 모든ALTER*권한이 포함됩니다.ALTER CONSTRAINT권한에는ALTER ADD CONSTRAINT및ALTER DROP CONSTRAINT권한이 포함됩니다.
MODIFY SETTING권한은 테이블 엔진 설정을 수정할 수 있게 해줍니다. 이 권한은 설정이나 서버 구성 매개변수에는 영향을 주지 않습니다.ATTACH작업에는 CREATE 권한이 필요합니다.DETACH작업에는 DROP 권한이 필요합니다.- KILL MUTATION 쿼리로 mutation을 중지하려면, 해당 mutation을 시작할 수 있는 권한이 있어야 합니다. 예를 들어
ALTER UPDATE쿼리를 중지하려면ALTER UPDATE,ALTER TABLE또는ALTER권한이 필요합니다.
BACKUP
BACKUP]을 실행할 수 있도록 합니다. 백업에 대한 자세한 내용은 “백업 및 복원”을 참조하십시오.
CREATE
CREATE. 수준:GROUPCREATE DATABASE. 수준:DATABASECREATE TABLE. 수준:TABLECREATE ARBITRARY TEMPORARY TABLE. 수준:GLOBALCREATE TEMPORARY TABLE. 수준:GLOBAL
CREATE VIEW. 수준:VIEWCREATE DICTIONARY. 수준:DICTIONARY
- 생성한 테이블을 삭제하려면 DROP 권한이 필요합니다.
CLUSTER
ON CLUSTER 쿼리 실행을 허용합니다.
Syntax
ON CLUSTER가 포함된 쿼리를 실행하려면 사용자에게 CLUSTER 권한이 있어야 합니다.
먼저 CLUSTER 권한을 부여하지 않은 상태에서 쿼리에서 ON CLUSTER를 사용하려고 하면 다음과 같은 오류가 발생합니다:
config.xml의 access_control_improvements 섹션에 있는
on_cluster_queries_require_cluster_grant 설정(아래 참조)을 false로 지정하여 변경할 수 있습니다.
config.xml
DROP
DROP. 수준:GROUPDROP DATABASE. 수준:DATABASEDROP TABLE. 수준:TABLEDROP VIEW. 수준:VIEWDROP DICTIONARY. 수준:DICTIONARY
TRUNCATE
TABLE.
OPTIMIZE
TABLE.
SHOW
SHOW, DESCRIBE, USE, EXISTS 쿼리를 실행할 수 있습니다.
SHOW. 수준:GROUPSHOW DATABASES. 수준:DATABASE.SHOW DATABASES,SHOW CREATE DATABASE,USE <database>쿼리를 실행할 수 있습니다.SHOW TABLES. 수준:TABLE.SHOW TABLES,EXISTS <table>,CHECK <table>쿼리를 실행할 수 있습니다.SHOW COLUMNS. 수준:COLUMN.SHOW CREATE TABLE,DESCRIBE쿼리를 실행할 수 있습니다.SHOW DICTIONARIES. 수준:DICTIONARY.SHOW DICTIONARIES,SHOW CREATE DICTIONARY,EXISTS <dictionary>쿼리를 실행할 수 있습니다.
SHOW 권한도 가집니다.
KILL QUERY
GLOBAL.
참고
KILL QUERY 권한이 있으면 다른 사용자의 쿼리를 종료할 수 있습니다.
액세스 관리
ACCESS MANAGEMENT. 수준:GROUPCREATE USER. 수준:GLOBALALTER USER. 수준:GLOBALDROP USER. 수준:GLOBALCREATE ROLE. 수준:GLOBALALTER ROLE. 수준:GLOBALDROP ROLE. 수준:GLOBALROLE ADMIN. 수준:GLOBALCREATE ROW POLICY. 수준:GLOBAL. 별칭:CREATE POLICYALTER ROW POLICY. 수준:GLOBAL. 별칭:ALTER POLICYDROP ROW POLICY. 수준:GLOBAL. 별칭:DROP POLICYCREATE QUOTA. 수준:GLOBALALTER QUOTA. 수준:GLOBALDROP QUOTA. 수준:GLOBALCREATE SETTINGS PROFILE. 수준:GLOBAL. 별칭:CREATE PROFILEALTER SETTINGS PROFILE. 수준:GLOBAL. 별칭:ALTER PROFILEDROP SETTINGS PROFILE. 수준:GLOBAL. 별칭:DROP PROFILESHOW ACCESS. 수준:GROUPSHOW_USERS. 수준:GLOBAL. 별칭:SHOW CREATE USERSHOW_ROLES. 수준:GLOBAL. 별칭:SHOW CREATE ROLESHOW_ROW_POLICIES. 수준:GLOBAL. 별칭:SHOW POLICIES,SHOW CREATE ROW POLICY,SHOW CREATE POLICYSHOW_QUOTAS. 수준:GLOBAL. 별칭:SHOW CREATE QUOTASHOW_SETTINGS_PROFILES. 수준:GLOBAL. 별칭:SHOW PROFILES,SHOW CREATE SETTINGS PROFILE,SHOW CREATE PROFILE
ALLOW SQL SECURITY NONE. 수준:GLOBAL. 별칭:CREATE SQL SECURITY NONE,SQL SECURITY NONE,SECURITY NONE
ROLE ADMIN 권한이 있으면 admin 옵션과 함께 사용자에게 부여되지 않은 역할을 포함해 모든 역할을 할당하거나 회수할 수 있습니다.
SYSTEM
SYSTEM. 수준:GROUPSYSTEM SHUTDOWN. 수준:GLOBAL. 별칭:SYSTEM KILL,SHUTDOWNSYSTEM DROP CACHE. 별칭:DROP CACHESYSTEM DROP DNS CACHE. 수준:GLOBAL. 별칭:SYSTEM CLEAR DNS CACHE,SYSTEM DROP DNS,DROP DNS CACHE,DROP DNSSYSTEM DROP MARK CACHE. 수준:GLOBAL. 별칭:SYSTEM CLEAR MARK CACHE,SYSTEM DROP MARK,DROP MARK CACHE,DROP MARKSSYSTEM DROP UNCOMPRESSED CACHE. 수준:GLOBAL. 별칭:SYSTEM CLEAR UNCOMPRESSED CACHE,SYSTEM DROP UNCOMPRESSED,DROP UNCOMPRESSED CACHE,DROP UNCOMPRESSED
SYSTEM RELOAD. 수준:GROUPSYSTEM RELOAD CONFIG. 수준:GLOBAL. 별칭:RELOAD CONFIGSYSTEM RELOAD DICTIONARY. 수준:GLOBAL. 별칭:SYSTEM RELOAD DICTIONARIES,RELOAD DICTIONARY,RELOAD DICTIONARIESSYSTEM RELOAD EMBEDDED DICTIONARIES. 수준:GLOBAL. 별칭:RELOAD EMBEDDED DICTIONARIES
SYSTEM MERGES. 수준:TABLE. 별칭:SYSTEM STOP MERGES,SYSTEM START MERGES,STOP MERGES,START MERGESSYSTEM TTL MERGES. 수준:TABLE. 별칭:SYSTEM STOP TTL MERGES,SYSTEM START TTL MERGES,STOP TTL MERGES,START TTL MERGESSYSTEM FETCHES. 수준:TABLE. 별칭:SYSTEM STOP FETCHES,SYSTEM START FETCHES,STOP FETCHES,START FETCHESSYSTEM MOVES. 수준:TABLE. 별칭:SYSTEM STOP MOVES,SYSTEM START MOVES,STOP MOVES,START MOVESSYSTEM SENDS. 수준:GROUP. 별칭:SYSTEM STOP SENDS,SYSTEM START SENDS,STOP SENDS,START SENDSSYSTEM DISTRIBUTED SENDS. 수준:TABLE. 별칭:SYSTEM STOP DISTRIBUTED SENDS,SYSTEM START DISTRIBUTED SENDS,STOP DISTRIBUTED SENDS,START DISTRIBUTED SENDSSYSTEM REPLICATED SENDS. 수준:TABLE. 별칭:SYSTEM STOP REPLICATED SENDS,SYSTEM START REPLICATED SENDS,STOP REPLICATED SENDS,START REPLICATED SENDS
SYSTEM REPLICATION QUEUES. 수준:TABLE. 별칭:SYSTEM STOP REPLICATION QUEUES,SYSTEM START REPLICATION QUEUES,STOP REPLICATION QUEUES,START REPLICATION QUEUESSYSTEM SYNC REPLICA. 수준:TABLE. 별칭:SYNC REPLICASYSTEM RESTART REPLICA. 수준:TABLE. 별칭:RESTART REPLICASYSTEM FLUSH. 수준:GROUPSYSTEM FLUSH DISTRIBUTED. 수준:TABLE. 별칭:FLUSH DISTRIBUTEDSYSTEM FLUSH LOGS. 수준:GLOBAL. 별칭:FLUSH LOGS
SYSTEM RELOAD DICTIONARY ON *.* 권한이 있으면 SYSTEM RELOAD EMBEDDED DICTIONARIES 권한도 암묵적으로 부여됩니다.
INTROSPECTION
INTROSPECTION. 수준:GROUP. 별칭:INTROSPECTION FUNCTIONSaddressToLine. 수준:GLOBALaddressToLineWithInlines. 수준:GLOBALaddressToSymbol. 수준:GLOBALdemangle. 수준:GLOBAL
SOURCES
READ. 수준:GLOBAL_WITH_PARAMETERWRITE. 수준:GLOBAL_WITH_PARAMETER
AZUREFILEHDFSHIVEJDBCKAFKAMONGOMYSQLNATSODBCPOSTGRESRABBITMQREDISREMOTES3SQLITEURL
소스에 대한 READ/WRITE 권한 분리는 버전 25.7부터 사용할 수 있으며, 서버 설정
access_control_improvements.enable_read_write_grants
이 활성화된 경우에만 지원됩니다.그렇지 않으면 GRANT AZURE ON *.* TO user 구문을 사용해야 하며, 이는 새로운 GRANT READ, WRITE ON AZURE TO user와 동일합니다.- MySQL 테이블 엔진으로 테이블을 생성하려면
CREATE TABLE (ON db.table_name)및MYSQL권한이 필요합니다. - MySQL 테이블 함수를 사용하려면
CREATE TEMPORARY TABLE및MYSQL권한이 필요합니다.
소스 필터 권한 부여
이 기능은 버전 25.8부터 사용할 수 있으며, 서버 설정
access_control_improvements.enable_read_write_grants
이 활성화된 경우에만 지원됩니다.WITH GRANT OPTION이 있으면 GRANT CURRENT GRANTS를 사용해 다시 권한을 부여할 수 있습니다.
- 부분 철회는 허용되지 않습니다: 이미 권한이 부여된 filter 패턴의 부분 집합만 철회할 수는 없습니다. 필요한 경우 전체 권한 부여를 철회한 후 새 패턴으로 다시 권한을 부여해야 합니다.
- 와일드카드 권한 부여는 허용되지 않습니다:
GRANT READ ON *('regexp')또는 이와 유사한 와일드카드 전용 패턴은 사용할 수 없습니다. 반드시 구체적인 source를 지정해야 합니다.
dictGet
dictGet. 별칭:dictHas,dictGetHierarchy,dictIsIn
DICTIONARY.
예시
GRANT dictGet ON mydb.mydictionary TO johnGRANT dictGet ON mydictionary TO john
displaySecretsInShowAndSelect
display_secrets_in_show_and_select 서버 설정
및
format_display_secrets_in_show_and_select 포맷 설정
이 모두 활성화되어 있으면, SHOW 및 SELECT 쿼리에서 시크릿을 볼 수 있습니다.
NAMED COLLECTION ADMIN
NAMED COLLECTION ADMIN. 수준:NAMED_COLLECTION. 별칭:NAMED COLLECTION CONTROLCREATE NAMED COLLECTION. 수준:NAMED_COLLECTIONDROP NAMED COLLECTION. 수준:NAMED_COLLECTIONALTER NAMED COLLECTION. 수준:NAMED_COLLECTIONSHOW NAMED COLLECTIONS. 수준:NAMED_COLLECTION. 별칭:SHOW NAMED COLLECTIONSSHOW NAMED COLLECTIONS SECRETS. 수준:NAMED_COLLECTION. 별칭:SHOW NAMED COLLECTIONS SECRETSNAMED COLLECTION. 수준:NAMED_COLLECTION. 별칭:NAMED COLLECTION USAGE, USE NAMED COLLECTION
GRANT CREATE NAMED COLLECTION ON abc TO john
테이블 엔진
GRANT TABLE ENGINE ON * TO johnGRANT TABLE ENGINE ON TinyLog TO john
기본적으로는 하위 호환성 때문에 특정 테이블 엔진으로 테이블을 생성할 때 권한 부여를 확인하지 않습니다.
하지만 config.xml에서
table_engines_require_grant를 true로 설정하여 이 동작을 변경할 수 있습니다.READ/WRITE 권한이 필요할 수 있습니다. SOURCES를 참조하십시오.
예를 들어 AzureBlobStorage 테이블 엔진에는 다음과 같은 권한 부여가 필요할 수 있습니다.
GRANT READ, WRITE ON AZURE TO john
ALL
ALL 권한은 ClickHouse Cloud에서 지원되지 않으며, 이 환경에서 default 사용자는 제한된 권한만 가집니다. 사용자는 default_role을 부여해 사용자에게 최대 권한을 부여할 수 있습니다. 자세한 내용은 여기를 참조하십시오.
또한 사용자는 default 사용자로 GRANT CURRENT GRANTS를 사용해 ALL과 유사한 효과를 얻을 수 있습니다.NONE
ADMIN OPTION
ADMIN OPTION 권한이 있으면 사용자는 자신의 역할을 다른 사용자에게 부여할 수 있습니다.