web-dev-qa-db-ja.com

Cassandra DBで最初のユーザーをどのように作成しますか

cassandra=データベースで最初のユーザーをどのように作成しますか?

私は試した:

CREATE USER username WITH PASSWORD "";

そしてそれは言う:

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

しかし、この試行の前にユーザーを作成したことがないので、cassandra=データベースで最初のユーザーをどのように作成しますか?

これは鶏と卵の問題のようなものだから少し奇妙に思えますが、人々はCassandraを使用しているので、どこかに解決策があるはずです。

16
Pinocchio

認証と許可を有効にしたら、デフォルトのCassandra= adminユーザーとして次のようにローカルCassandraインスタンス)にログインできます。

./cqlsh localhost -u cassandra -p cassandra

Cassandra= Windowsサーバーで実行している場合、私は 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の内部認証および承認セキュリティのクイックツアー

25
Aaron

変化する

authenticator: AllowAllAuthenticator 

authenticator: PasswordAuthenticator 

cassandra.yamlconfigurationファイルを開き、Cassandraを再起動します。

これにより、スーパーユーザーcassandra=が再起動します。Phthon27、thrift-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]

ヘルプを使用してください。

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

Re:認証と承認を有効にしたら(BryceAtNetwork23による3月6日14:41コメントから)

まず、認証を設定するために承認を変更する必要がありますか?私は推測していない。

第二に、データセンタースタイルのレプリケーションセットアップを使用している場合、承認のセットアップは簡単ではありません。次の手順を使用して承認を設定します。

  • Conf/cassandra.yamlで、すべてのノードの認証システムをAllowAllAuthenticatorからPasswordAuthenticatorに変更しました
  • すべてのノードを再起動しました
  • 上記のようにデフォルトの「cassandra」パスワードを変更し、他のスーパーユーザーを追加しました
  • System_authキースペースを(cassandra.yamlファイルの指示に従って)冗長に変更しました:「ALTER KEYSPACE system_auth WITH REPLICATION = {'class': 'NetworkTopologyStrategy'、 'MY_DATACENTER_NAME':N}」
  • Nをデータセンター内のノード数に設定しました(つまり、完全に冗長)
  • 各ノードでビン/ノードツールの修復を連続して実行

これは、自分が何をしているのかを知っている人にとって理にかなっていますか?

3
Ben Slade

認証の使用を開始するには、デフォルトのスーパーユーザーのユーザー名/パスワードのペアはcassandra/cassandra。これにより、鶏と卵の問題が修正されます。

ソース: http://www.datastax.com/docs/datastax_enterprise3.0/security/native_authentication

3
Blue Ice