Как создать первого пользователя в Cassandra DB
Как создать первого пользователя в базе данных cassandra?
Я пробовал:
CREATE USER username WITH PASSWORD "";
и в нем говорится:
Bad Request: Only superusers are allowed to perform CREATE USER queries
Но я никогда не создавал пользователя перед этой попыткой, так как вы создаете первого пользователя в базе данных cassandra?
Это кажется немного странным, потому что это похоже на проблему с курицей и яйцом, но люди используют Кассандру, поэтому я уверен, что где-то должно быть решение.
Ответы
Ответ 1
Как только вы включили аутентификацию и авторизацию, вы можете войти в систему (в свой локальный экземпляр Cassandra) в качестве администратора admin Cassandra, как это:
./cqlsh localhost -u cassandra -p cassandra
Если вы используете Cassandra на Windows Server, я считаю, вам нужно вызвать его с помощью Python:
python cqlsh localhost -u cassandra -p cassandra
Как только вы войдете, ваша первая задача должна состоять в создании еще одной суперпользовательской учетной записи.
CREATE USER dba WITH PASSWORD 'bacon' SUPERUSER;
Далее, это действительно хорошая идея, чтобы установить текущий пароль пользователя Cassandra на что-то еще... желательно что-то длинное и непонятное. С вашим новым суперпользователем вам больше не понадобится учетная запись Cassandra по умолчанию.
ALTER USER cassandra WITH PASSWORD 'dfsso67347mething54747long67a7ndincom4574prehensi562ble';
Для получения дополнительной информации ознакомьтесь с этой статьей DataStax: Быстрый просмотр внутренней проверки подлинности и авторизации в DataStax Enterprise и Apache Cassandra
Ответ 2
Чтобы начать использовать аутентификацию, парам пользователей/паролей суперпользователя по умолчанию является cassandra/cassandra
. Это должно устранить проблему с курицей и яйцом.
Источник:
http://www.datastax.com/docs/datastax_enterprise3.0/security/native_authentication
Ответ 3
Re: Как только вы включили аутентификацию и авторизацию (от 6 марта в 14:41 комментарий BryceAtNetwork23)
Во-первых, меняется ли авторизация, необходимая для настройки аутентификации? Я предполагаю, что нет.
Во-вторых, настройка авторизации не является тривиальной, если у вас установлена репликация стиля центра обработки данных. Я настраиваю авторизацию, используя следующие шаги:
- В conf/cassandra.yaml изменился аутентификатор с AllowAllAuthenticator на PasswordAuthenticator для всех узлов
- Перезагрузка всех узлов
- Изменен пароль по умолчанию "cassandra", как описано выше, и добавлены другие суперпользователи
- Изменено пространство ключей system_auth, которое должно быть избыточным (в соответствии с инструкциями в файле cassandra.yaml), выполнив: "ALTER KEYSPACE system_auth WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'MY_DATACENTER_NAME': N}"
- Я установил, что N задано количество узлов в моем центре данных (т.е. полностью избыточно)
- Ran bin/nodetool для каждого node серийно
Это звучит разумно для людей, которые знают, что они делают?
Ответ 4
Измените
authenticator: AllowAllAuthenticator
To
authenticator: PasswordAuthenticator
в cassandra.yaml
файле конфигурации и перезапустите Cassandra.
Это создаст для вас перезапуск cassandra суперпользователя. Убедитесь, что у вас установлены Phthon27, бережливость-0.91, Cassandra (datastax community edition 2.0.9) и т.д. Теперь, когда вы входите в cassandra, он позволит вам войти в качестве суперпользователя. Теперь вы можете создать новый суперпользователь и изменить существующий пароль суперпользователя.
python cqlsh localhost -u cassandra -p cassandra
Connected to Test Cluster at localhost:9160.
[cqlsh 4.1.1 | Cassandra 2.0.9 | CQL spec 3.1.1 | Thrift protocol 19.39.0]
Используйте HELP для получения справки.
cqlsh> create user abc with password 'xyz' superuser;
cqlsh> alter user cassandra with password 'gaurav';
cqlsh> exit