Comment créer le premier utilisateur dans Cassandra DB

Comment créer le premier utilisateur dans une base de données cassandra?

j'ai essayé:

CREATE USER username WITH PASSWORD "";

et son dit:

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

mais je n'ai jamais créé un utilisateur avant cette tentative, alors comment créer le premier utilisateur dans une base de données cassandra?

cela semble un peu étrange parce que c'est comme un problème de poulet et d'œuf, mais les gens utilisent Cassandra donc je suis sûr qu'il doit y avoir une solution quelque part.

14
demandé sur Aaron 2014-03-06 06:39:46

4 réponses

une fois que vous avez activé L'authentification et L'autorisation, vous pouvez vous connecter (à votre instance Cassandra locale) en tant qu'utilisateur administrateur de Cassandra par défaut comme ceci:

./cqlsh localhost -u cassandra -p cassandra

si vous utilisez Cassandra sur un serveur Windows, je crois vous devez l'invoquer avec Python:

python cqlsh localhost -u cassandra -p cassandra

une Fois que vous obtenez votre première tâche devrait être de créer un autre compte de super utilisateur.

CREATE USER dba WITH PASSWORD 'bacon' SUPERUSER;

ensuite, c'est une très bonne idée de mettre la Cassandra actuelle le mot de passe du super utilisateur pour autre chose...de préférence quelque chose de long et incompréhensible. Avec votre nouveau super-utilisateur, vous ne devriez pas avoir besoin du compte par défaut Cassandra à nouveau.

ALTER USER cassandra WITH PASSWORD 'dfsso67347mething54747long67a7ndincom4574prehensi562ble';

pour plus d'informations, consultez cet article DataStax:un Tour rapide de L'authentification interne et de la sécurité D'autorisation dans DataStax Enterprise et Apache Cassandra

22
répondu Aaron 2014-03-06 14:41:11

pour commencer à utiliser l'authentification, la paire par défaut superuser nom d'utilisateur/mot de passe est cassandra/cassandra. Cela devrait régler le problème de la poule et de l'œuf.

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

3
répondu Blue Ice 2014-03-06 03:36:33

Re: Une fois que vous avez activé L'authentification et L'Autorisation (du Commentaire du 6 mars à 14:41 par BryceAtNetwork23)

tout d'abord, est-il nécessaire de modifier l'autorisation pour configurer l'authentification? Je devine pas.

Deuxièmement, configurer l'autorisation n'est pas vraiment trivial si vous avez une configuration de réplication de type Centre de données. J'ai d'installation de l'autorisation en utilisant les étapes suivantes:

  • En conf/cassandra.yaml, changement d'authentificateur de AllowAllAuthenticator à PasswordAuthenticator pour tous les nœuds
  • redémarré tous les noeuds
  • a changé le mot de passe par défaut 'cassandra' comme décrit ci-dessus et a ajouté d'autres superusers
  • a modifié le bloc de touches system_auth pour qu'il soit redondant (selon les instructions du cassandra.yaml file) en exécutant: "ALTER KEYSPACE system_auth WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'MY_DATACENTER_NAME': n}"
  • j'ai mis N a été fixée pour le nombre de nœuds dans mon centre de données (ie. entièrement redondant)
  • a Couru bin/nodetool de réparation sur chaque nœud en série

Est-ce raisonnable pour les gens qui savent ce qu'ils font?

3
répondu Ben Slade 2014-07-21 18:09:19

Modifier

authenticator: AllowAllAuthenticator 

authenticator: PasswordAuthenticator 

cassandra.yaml fichier de configuration et redémarrage de Cassandra.

cela créera un cassandra super-utilisateur pour vous avec le redémarrage. Assurez-vous que vous avez Phthon27, thrift-0.91, Cassandra ( datastax community edition 2.0.9 ) etc installé. Maintenant, lorsque vous vous connectez à cassandra, il vous permettra de saisir en tant que superutilisateur. Vous pouvez maintenant créer de nouveaux superuser et modifier le mot de passe de superuser existant ainsi.

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]

Utilisation De l'AIDE pour obtenir de l'aide.

cqlsh> create user abc with password 'xyz' superuser; 
cqlsh> alter user cassandra with password 'gaurav'; 
cqlsh> exit
3
répondu user3183457 2016-03-01 11:09:54