[解決済み] MongoDB - 管理者ユーザが認証されていない
質問
MongoDBに認証機能を追加しようとしています。
私はLinuxでMongoDB 2.6.1を使って、このすべてをやっています。
私の mongod.conf ファイルは、古い互換性のある形式です。
(これはインストール時に付いてきたものです)。
1) (3)で説明したようにadminユーザーを作成しました。
http://docs.mongodb.org/manual/tutorial/add-user-administrator/
2) 次に、この行のコメントを外して mongod.conf を編集しました。
auth = true
3) 最後にmongodサービスを再起動し、私はでログインしようとしました。
/usr/bin/mongo localhost:27017/admin -u sa -p pwd
4) 接続はできるのですが、接続時にこのように表示されます。
MongoDB shell version: 2.6.1
connecting to: localhost:27017/admin
Welcome to the MongoDB shell!
The current date/time is: Thu May 29 2014 17:47:16 GMT-0400 (EDT)
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
5) これで、次のように見える。
sa
を作成したユーザーには、まったくパーミッションがありません。
root@test02:~# mc
MongoDB shell version: 2.6.1
connecting to: localhost:27017/admin
Welcome to the MongoDB shell!
The current date/time is: Thu May 29 2014 17:57:03 GMT-0400 (EDT)
Error while trying to show server startup warnings: not authorized on admin to execute command { getLog: "startupWarnings" }
[admin] 2014-05-29 17:57:03.011 >>> use admin
switched to db admin
[admin] 2014-05-29 17:57:07.889 >>> show collections
2014-05-29T17:57:10.377-0400 error: {
"$err" : "not authorized for query on admin.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
[admin] 2014-05-29 17:57:10.378 >>> use test
switched to db test
[test] 2014-05-29 17:57:13.466 >>> show collections
2014-05-29T17:57:15.930-0400 error: {
"$err" : "not authorized for query on test.system.namespaces",
"code" : 13
} at src/mongo/shell/query.js:131
[test] 2014-05-29 17:57:15.931 >>>
何が問題なのでしょうか?この手順を3回繰り返しましたが
MongoDBのドキュメントに指定されている通りにすべてやったつもりです。しかし、うまくいきません。
私はこれを期待していた
sa
ユーザは何もする権限がないので
その後、他のユーザーを作成し、より具体的な権限を与えることができます。
解決方法は?
私も同じ問題で頭を悩ませていたのですが、最初の管理者ユーザーを追加する際にロールをrootに設定したら全てうまくいったんです。
use admin
db.createUser(
{
user: 'admin',
pwd: 'password',
roles: [ { role: 'root', db: 'admin' } ]
}
);
exit;
既に作成済みの場合は
admin
のユーザーであれば、このようにロールを変更することができます。
use admin;
db.grantRolesToUser('admin', [{ role: 'root', db: 'admin' }])
認証設定の完全なリファレンスは ステップ インターネットで何時間も調べてまとめました。
関連
-
[解決済み】MongoDBデータベースの名前を変更する方法とは?
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] mongo - サーバー 127.0.0.1:27017 に接続できませんでした。
-
[解決済み] MongoDB の個別集計
-
[解決済み] mongod.serviceの再起動に失敗しました。ユニット mongod.service が見つかりませんでした
-
[解決済み] mongodb Failed: error connecting to db server: no reachable servers
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み】シェルスクリプトでmongoのコマンドを実行するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】MongoDBデータベースの名前を変更する方法とは?
-
[解決済み] 複合リテラルのキー無しフィールドの使用
-
[解決済み] MongoDB Compass フィルタ (クエリ)
-
[解決済み] mongodb サービスが開始されない
-
[解決済み] Mongo で "NOT IN" クエリを実行するにはどうすればいいのですか?
-
[解決済み】mongoコンソールでObjectIdを使用してオブジェクトを検索する方法は?
-
[解決済み】MongoDBで、あるデータベースから別のデータベースにコレクションをコピーする方法
-
[解決済み】ネストされたオブジェクトをクエリする方法は?
-
[解決済み] MongoDB のオブジェクトを部分的に更新して、新しいオブジェクトを既存のオブジェクトにオーバーレイ/マージするにはどうすればよいですか?
-
[解決済み】MongoDBのすべてのドキュメントのフィールド名を変更するにはどうすればよいですか?