Vraag Hoe creëer je de eerste gebruiker in Cassandra DB


Hoe creëer je de eerste gebruiker in een cassandra-database?

Ik heb geprobeerd:

CREATE USER username WITH PASSWORD "";

en het zegt:

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

Maar ik heb nog nooit een gebruiker gemaakt vóór deze poging, dus hoe creëer je de eerste gebruiker in een cassandra-database?

Dit lijkt een beetje vreemd, omdat het een probleem is met kip en eieren, maar mensen gebruiken Cassandra, dus ik ben er zeker van dat er ergens een oplossing moet zijn.


14
2018-03-06 02:39


oorsprong


antwoorden:


Nadat u Verificatie en autorisatie hebt ingeschakeld, kunt u zich als volgt aanmelden (naar uw lokale Cassandra-instantie) als de standaard Cassandra-beheergebruiker:

./cqlsh localhost -u cassandra -p cassandra

Als je Cassandra op een Windows Server draait, geloof ik je moet het met Python aanroepen:

python cqlsh localhost -u cassandra -p cassandra

Zodra u instapt, moet uw eerste taak zijn om nog een supergebruikersaccount te maken.

CREATE USER dba WITH PASSWORD 'bacon' SUPERUSER;

Vervolgens is het een goed idee om het huidige wachtwoord van de Cassandra supergebruiker in te stellen op iets anders ... het liefst iets dat lang en onbegrijpelijk is. Met je nieuwe super-gebruiker zou je het standaard Cassandra-account niet meer nodig moeten hebben.

ALTER USER cassandra WITH PASSWORD 'dfsso67347mething54747long67a7ndincom4574prehensi562ble';

Raadpleeg dit DataStax-artikel voor meer informatie: Een snelle rondleiding door interne authenticatie en autorisatiebeveiliging in DataStax Enterprise en Apache Cassandra 


21
2018-03-06 14:41



Om authenticatie te gaan gebruiken, is het standaard superuser gebruikersnaam / wachtwoord-paar dat cassandra/cassandra. Dit zou het kip- en eiprobleem moeten oplossen.

Bron: http://www.datastax.com/docs/datastax_enterprise3.0/security/native_authentication


3
2018-03-06 03:36



Re: Nadat u authenticatie en autorisatie hebt ingeschakeld (vanaf de 6 maart om 14:41 reactie van BryceAtNetwork23)

Ten eerste, is het wijzigen van autorisatie vereist om authenticatie in te stellen? Ik gok het niet.

Ten tweede is het instellen van autorisatie niet bepaald triviaal als u een replicatie-installatie in datacentrumstijl hebt. Ik stel de autorisatie in met behulp van de volgende stappen:

  • In conf / cassandra.yaml veranderde de authenticator van AllowAllAuthenticator in PasswordAuthenticator voor alle knooppunten
  • Alle knooppunten opnieuw gestart
  • Veranderde het standaard 'cassandra'-wachtwoord zoals hierboven beschreven en voegde andere superusers toe
  • Veranderde de system_auth sleutelruimte om overbodig te zijn (volgens instructies in het cassandra.yaml bestand) door te draaien: "ALTER KEYSPACE system_auth WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'MY_DATACENTER_NAME': N}"
  • Ik heb ingesteld dat N was ingesteld op het aantal knooppunten in mijn datacenter (dat wil zeggen, volledig redundant)
  • Ran bin / nodetool-reparatie op elk knooppunt in serie

Klinkt dit redelijk voor mensen die weten wat ze doen?


3
2017-07-21 18:09



Verandering

authenticator: AllowAllAuthenticator 

Naar

authenticator: PasswordAuthenticator 

in cassandra.yamlconfiguratiebestand en herstart Cassandra.

Dit zal een superuser cassandra voor je maken bij het herstarten. Zorg ervoor dat je Phthon27, thrift-0.91, Cassandra (datastax-communityeditie 2.0.9), enz. Hebt geïnstalleerd. Wanneer je nu in cassandra inlogt, kun je dit als superuser invoeren. U kunt nu ook een nieuwe superuser maken en het wachtwoord van de bestaande superuser wijzigen.

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]

Gebruik HELP voor hulp.

cqlsh> create user abc with password 'xyz' superuser; 
cqlsh> alter user cassandra with password 'gaurav'; 
cqlsh> exit

3
2017-09-10 20:26