MongoDB - ClusterAdminロールなしでDBSを表示してログを表示する -- mongodb フィールド と privileges フィールド と replicaset フィールド 関連 問題

MongoDB - show dbs and show log without clusterAdmin role












1
vote

問題

日本語

MongoDBレプリカにユーザーを付ける方法は、「DBS」と「ログを表示」を使用することなく、「Show log」を使用する機能を設定しますか?

様々なユーザインタフェース(例えば、Robomongo)接続するときにデータベースのリストを表示します。 「DBS」を「表示」されていない場合は、データベースは一覧表示されていません。

ありがとうございました!

英語

Is there a way to give a user on a MongoDB replica set the ability to use 'show dbs' and 'show log' without giving them the clusterAdmin role?

Various user interfaces (e.g., robomongo) show a list of databases when you connect. Without the ability to 'show dbs', no databases are listed.

Thank you!

</div
        
         
         

回答リスト

3
 
vote

質問は、明らかに古いバージョンを念頭に置いて書かれていましたが、少なくとも3.2.9以降これは可能です。

コマンド show dbs は、 listDatabases の周囲のラッパーです。 だから最初に後者のみをする役割を作成します。

<事前> <コード> db.runCommand({createRole:"justListDatabases",privileges:[{resource:{cluster:true}, actions:["listDatabases"]}],roles:[]})

それをユーザーに付与します。

<事前> <コード> db.grantRolesToUser("app_RO_user",["justListDatabases"])


> show dbs は、各データベースをそのサイズのサイズで尋問しています。 MongoDBインスタンスがこのようなロックをどのように許容するかに応じて、このようなロックを許容する方法に応じて、このクラスタ権限を慎重に低特権ユーザーに付与したい場合があります。

 

The question was apparently written with an older version in mind, but since at least 3.2.9 this has been possible.

The command show dbs is a wrapper around the command listDatabases, which is grantable. So first create a role that does only the latter.

db.runCommand({createRole:"justListDatabases",privileges:[{resource:{cluster:true},                actions:["listDatabases"]}],roles:[]}) 

Then grant it to the user.

db.grantRolesToUser("app_RO_user",["justListDatabases"]) 


NOTE that show dbs interrogates each database for its size, which uses locks. So depending on how your MongoDB instances tolerate such locks you might want to grant this cluster privilege to low privilege users judiciously.

</div
 
 

関連する質問

1  Mongo Shellからのリモートレプリカに接続しますか?  ( Connecting to remote replica set from mongo shell ) 
私はAmazon Cloudで3メンバのレプリカセットを作成しました.Iが必要なすべてのファイアウォール設定が必要で、Mongo Congurations.Belowは私のレプリカセット設定: <事前> <コード> { "_id" : "rs1", ...

3  レプリカセットがクウェットで紹介されたのはなぜですか?  ( Why was replicaset introduced in kubernetes ) 
ReplicasetとReplicationControllerの間の違いを理解しています。元のセットベースと後者の平等に基づいています。私が知りたいことは、古いReplicationControllerが同じ機能を達成したときに新しい実装(読み取りレプリケ...

1  Mongooseは、レプリケートが見つからなかった後に再接続できません  ( Mongoose fails to reconnect after replicaset not found error ) 
MongoDBアトラスに接続する小さなWebサイトを実行しています。それは3人のメンバーを持つレプリカセットを持っています。ほとんどの場合、すべてが大丈夫ですが、今ではアトラスのレプリカセットがクラッシュ(または何か?)とMongooseはその後働いています...

-1  MongoDB MMS Portalから、レプリカセット内の既存のノードに「arbiteronly」を設定する方法?  ( How to set arbiteronly to an existing node in a replicaset from mongodb mms p ) 
MongoDB MMSサービスを使用してAzure Cloudでレプリカセットを設定しようとしています。 1つのノードを1次と2つのセカンダリとして、3つのノードを持つレプリカセットを作成しました。これらの二次ノードのうちの1つを任意の?にするにはどうすれば...

27  セカンダリをチェックする方法今すぐ同期されます  ( How to check secondary is synced now or not ) 
3つのメンバー(1次、二次、セカンダリ)を持つレプリカがあります。 1日のうちの1つの1つを一日の間に降ろした後、レプリカに戻って戻って戻ってくると、がまだ同期されているかどうか? 私はテスト環境でそれをしましたが、 rs.status() と db.pr...

3  MongoDB:新しいレプリカセットマスタに接続できません  ( Mongodb cant connect to new replica set master ) 
node.jsアプリケーションにMongoDBを設定しようとしています。このコマンドを実行しています: <事前> <コード> mongo "mongodb+srv://cluster0-gjc2u.mongodb.net/test" --username ...

1  Docker + MongoDB:DockerFileの中のレプリカセットを開始します  ( Docker mongodb initiating replicaset inside dockerfile ) 
MongoDBの起動とその後にレプリカセットを開始するドッキーファイルを作成する必要があります。 最初の私は以下のようにDockeFileを作成しました: <事前> <コード> FROM mongo:latest EXPOSE 27017 ADD set...

32  MongoDBレプリカをスタンドアロンサーバーに変換する方法  ( How to convert a mongodb replica set to a stand alone server ) 
考慮して、4つのレプリケートセットを持ち、configは次のとおりです。 <事前> <コード> { "_id": "rs_0", "version": 5, "members" : [ {"_id": 1, "host": "127.0.0.1:27...

11  MongoDBレプリカセット加盟国は「その他」です  ( Mongodb replica set member state is other ) 
3人のメンバー、プライマリ&アンプ。セカンダリ - および3番目のものは、その状態で情報を見つけることができませんが、何をすべきかわからない、私はインスタンスを再起動しましたが、常に同じものになりました。その状態についての文書なしを見つけることができません。...

1  MongoDB OplogがIDEmpotentされているのはなぜですか?挿入操作でも?  ( Why is the mongodb oplog is idempotent even for insert operation ) 
MongoDBのレプリカセット機能を学び、この記事を読んだとき レプリカセットOplog それは言った: OPLOGの各操作はIDEmpotentです。つまり、OPLOG操作は、ターゲットデータセットに対して1回または複数回適用されていれば同じ結果を...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有