Подтвердить что ты не робот

Как создать первого пользователя в Cassandra DB

Как создать первого пользователя в базе данных cassandra?

Я пробовал:

CREATE USER username WITH PASSWORD "";

и в нем говорится:

Bad Request: Only superusers are allowed to perform CREATE USER queries

Но я никогда не создавал пользователя перед этой попыткой, так как вы создаете первого пользователя в базе данных cassandra?

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

4b9b3361

Ответ 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