Cassandra 2.2.2 не может создать логин пользователя / роль
Недавно я обновил свой кластер Cassandra Dev до версии 2.2.2, которая включает поддержку RoleManager. Недавно я заметил, что при создании нового пользователя через CQL:
CREATE ROLE abc WITH PASSWORD = 'abcde' AND LOGIN = true;
или же
CREATE USER abc WITH PASSWORD 'abcde';
В любом случае, после выполнения вышеуказанной команды пользователь не может войти в систему. Изучив пространство ключей system_auth, я вижу, что "строка" записана в таблице ролей, но не в учетных данных или пользователях.
Если я вручную вставлю соответствующую строку в учетные данные и пользователей, тогда и только тогда мой пользователь сможет войти в систему.
Также обратите внимание, что я не могу УДАЛИТЬ пользователя 'abc', пока строка не будет вставлена вручную в учетные данные и пользователей.
Что здесь происходит - я неправильно использую CREATE USER / CREATE ROLE? Мне кажется, что операция CREATE должна выполнить необходимые настройки. Или миграция обновления не удалась каким-то тонким способом?
1 ответ
Если процесс обновления успешно завершен, вы должны увидеть следующие записи в журналах:
Completed conversion of legacy users
Completed conversion of legacy credentials
Если это так, то вам нужно вручную удалить устаревшие таблицы с помощью:
DROP TABLE system_auth.users;
DROP TABLE system_auth.credentials;
Это происходит из этого блога. Кассандра будет продолжать использовать устаревшие таблицы, пока они не будут удалены.