2016-12-25 1 views
1

私はMongoDBの初心者ですが、私はユーザーアカウントを格納する正しい方法を見つけようとしていますが、このトピックについての良い説明は見つかりませんでした。Mongo DBどこでユーザーアカウントを保持しますか?

私は、システム管理テーブルに管理者ユーザーを作成したユーザーの管理、データベースにアクセスするためのユーザーアカウントを保存する....

私の質問。それは私が推測する正しい場所です。しかし、新しいデータベースはどうですか?ここでは、物事を明確にするために

はモンゴの出力は、だから、私は二人のユーザーapi_videosを作成したことをはっきりと見ることができます

> use admin 
switched to db admin 
> db.getUsers(); 
[ 
    { 
     "_id" : "admin.mongoadmin", 
     "user" : "mongoadmin", 
     "db" : "admin", 
     "roles" : [ 
      { 
       "role" : "root", 
       "db" : "admin" 
      } 
     ] 
    }, 
    { 
     "_id" : "admin.api_videos", 
     "user" : "api_videos", 
     "db" : "admin", 
     "roles" : [ 
      { 
       "role" : "dbOwner", 
       "db" : "videos" 
      } 
     ] 
    } 
] 
> use videos 
switched to db videos 
> db.getUsers(); 
[ 
    { 
     "_id" : "videos.api_videos", 
     "user" : "api_videos", 
     "db" : "videos", 
     "roles" : [ 
      { 
       "role" : "dbOwner", 
       "db" : "videos" 
      } 
     ] 
    } 
] 
> 

シェルです。だからそれはどこにあるべきですか?管理テーブルまたはそれに関連するテーブルで?

答えて

0

です。戦略は、ユーザーがアクションを実行するデータベースに制限することです。

各DBのすべての管理ユーザーは、それぞれのデータベースに移動する必要があります。

どのように動作するかをご紹介します。詳細は、docsで提供されています。

ルートは、管理データベース内のすべてのロールのすべての権限を付与するには、rootで、スーパーユーザーを作成し、他のデータベースでの操作を行うことができます。

より厳格な管理を可能にするために、異なるロールで管理ユーザーをカスタマイズできます。

管理ロールでは、管理データベースでしか使用できません。

ルートユーザーは以下のいずれかの操作を実行できるようになりました。

のdbowner

特定のデータベースのデータベースのためのデータベース管理とユーザー管理を含んで、すべての権限を付与するためのdbownerロールを持つ管理ユーザーを作成します。

USERADMIN

specficデータベース内のユーザ管理privligesを付与するUSERADMINの役割を持つユーザーを作成します。

dbOwnerユーザーとuserAdminユーザーの両方は、ユーザー定義ロール(readおよびreadWrite)を使用して特定のデータベースにユーザーを作成できます。

さらに、細かい制御を可能にするカスタムロールと特権を持つユーザーを作成できます。

+0

答えのおかげで、私は役割の目的を理解しているので、管理者ユーザーを特定のデータベースに保存する方が良いですか?特定のDBのシステム管理テーブルでは?特定のdb内の – Putinhello

+0

は、dbOwnerまたはdbAdminの役割を使用します。 – Veeram

+0

回答ありがとうございます。回答を編集してください – Putinhello

関連する問題