导出所有用户和角色设置
sql
SELECT SQL FROM (
SELECT
concat('CREATE USER IF NOT EXISTS ', name, ' IDENTIFIED WITH ', auth_type[1], ' BY \'', '<password>', '\';') AS SQL,
1 AS ord
FROM
system.users
UNION ALL
SELECT
concat('CREATE ROLE IF NOT EXISTS ', name, ';') AS SQL,
2 AS ord
FROM
system.roles
UNION ALL
SELECT
concat('GRANT ', role_name, ' TO ', user_name, ';') AS SQL,
3 AS ord
FROM
system.role_grants
WHERE role_name IS NOT NULL
UNION ALL
SELECT
concat('GRANT ', access_type, ' ON ', COALESCE(database, ''), ' TO ', COALESCE(role_name, 'UnknownRole'), ';') AS SQL,
4 AS ord
FROM
system.grants
WHERE role_name IS NOT NULL
) A
ORDER BY ord;
导出所有表和视图定义
sql
SELECT SQL FROM (
SELECT
concat(create_table_query, ';') AS SQL,
1 AS ord
FROM
system.tables
WHERE engine IN ('Log', 'TinyLog', 'StripeLog', 'Memory', 'MergeTree', 'ReplacingMergeTree', 'SummingMergeTree', 'AggregatingMergeTree', 'Distributed', 'Memory', 'Buffer')
AND database NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
UNION ALL
SELECT
concat(create_table_query, ';') AS SQL,
2 AS ord
FROM
system.tables
WHERE engine IN ('View', 'MaterializedView')
AND database NOT IN ('system', 'information_schema', 'INFORMATION_SCHEMA')
) A
ORDER BY ord;