一、創建新的database clickhouse創建資料庫的語法幾乎和其他的關係型資料庫是一樣的,區別就是clickhouse存在集群cluster和庫引擎engine的概念,可以根據需要進行指定。如果沒有特殊需求,預設即可。 CREATE DATABASE [IF NOT EXISTS] db_ ...
一、創建新的database
clickhouse創建資料庫的語法幾乎和其他的關係型資料庫是一樣的,區別就是clickhouse存在集群cluster和庫引擎engine的概念,可以根據需要進行指定。如果沒有特殊需求,預設即可。
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
在創建資料庫的時候,我們首先要確認保存資料庫文件的目錄,對於clickhouse用戶有讀寫的許可權。如果你在安裝的時候,沒有修改資料庫文件目錄,預設的目錄是/var/lib/clickhouse/
。我們可以使用下麵的命令,將該目錄及其子目錄的屬主修改為clickhouse用戶。
chown clickhouse /var/lib/clickhouse/ -R
完成上面的操作步驟之後,就可以通過clickhouse-client -m --password <你的密碼>
連接clichouse服務實例,創建資料庫的SQL如下:
:) CREATE DATABASE acaidb;
創建資料庫完成之後,使用show databases;
命令看一下當前的clickhouse,有哪些database。(acaidb是我們自建的,default和system是clickhouse預設創建的database)
:) show databases;
┌─name────┐
│ acaidb │
│ default │
│ system │
└─────────┘
二、為default賬戶增加管理許可權
ClickHouse預設創建一個資料庫default,預設創建了一個用戶default。我們現在針對default用戶增加訪問管理許可權,因為該用戶預設情況下是不具備管理員許可權的,即:預設情況下,無法使用該用戶添加角色、添加用戶、以及其他許可權管理操作。
所以為了讓default用戶的管理許可權更大一些,我們修改 /etc/clickhouse-server/users.xml
文件,在users-> default標簽中,將access_management的註釋去掉。(在有些版本中其預設值是0,修改為1)
修改完成配置文件之後,重啟clickhouse-server,使用如下命令:
clickhouse restart
三、創建角色及用戶
創建角色
創建一個角色acaidb_rw, 該角色針對資料庫acaidb具備讀寫許可權。
CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;
如果讓一個角色只允許select,不允許修改數據,下麵的語句就可以。
CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;
創建普通賬戶並賦權
我們分別創建賬戶reader和writer,然後把只讀角色ro分配給reader,把讀寫角色分配給writer。這樣,reader擁有隻讀許可權,writer擁有讀寫許可權。
新建一個資料庫用戶acai,並設置密碼(將下文的<你的密碼>
替換)。並給用戶acai賦予讀寫許可權角色acaidb_rw 。
CREATE USER IF NOT EXISTS acai IDENTIFIED WITH sha256_password BY '<你的密碼>';
GRANT acaidb_rw TO acai;
使用下列命令訪問clickhouse數據,show databases
得到acaidb,說明我們成功了。因為acai用戶只能訪問acaidb。
# clickhouse-client -m -u acai --password '<你的密碼>' --query 'show databases;'
acaidb
推薦閱讀
限於博文篇幅,更多精彩內容我就不一一列舉了,推薦閱讀
《原創精品視頻及配套文檔:springboot-已錄製97節(免費)》
等等等等