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;

Это происходит из этого блога. Кассандра будет продолжать использовать устаревшие таблицы, пока они не будут удалены.

Другие вопросы по тегам