2016-10-13 2 views
0

私はデータベースtrafficとその2つのコレクションreadMereadWriteMeを持っています。私は次の操作を行うことができますmongoDBでユーザー作成したい -MongoDB 3.2の矛盾するロールと特権3.2

  1. readMeコレクションをお読みください。
  2. readWriteMeコレクションの読み取りと書き込みを行います。
  3. は、新しいコレクションを作成し、そのコレクションに対してreadWriteの権限を持つことができます。

私は役割を持っているがmyRoleを言う - 私は

privileges: [ 
     { resource: { db: "traffic", collection: "" }, actions: [ "find", "insert", "remove" ] }, 
     { resource: { db: "traffic", collection: "readMe"}, actions: ["find"]}, 
     ] 

このロールに次の権限を与えてみましたが、それはあまりにもreadMeコレクションに挿入することができます!

これにより、競合する特権の場合にどうなるのかという疑問が生じます。より優先度の高いものなど

答えて

0

最初の許可でコレクション名を指定していないためだと思います。試してみてください:あなたは、コレクションを作成し、それらをREADWRITEすることができるように、同じユーザーが必要な場合は

privileges: [ 
     { resource: { db: "traffic", collection: "readWriteMe" }, actions: [ "find", "insert", "remove" ] }, 
     { resource: { db: "traffic", collection: "readMe"}, actions: ["find"]} 
     ] 

を、私はそれが彼が何らかの形であなたのreadMeコレクションを読み書きできずに十分な権限を付与しないことは不可能だと思います。あなたはgrantRoleと一緒にcreateCollectionを適用してみることもできますが、これにより、ユーザーはreadMeコレクションのreadWriteロールを自分自身に割り当てることができます

+0

上記の権限セットは 'readWriteMe'と' r '' readMe'のために ''私は新しいコレクションを作成することができません。 – atulj

+0

申し訳ありませんが、私はこの必要条件を見ていませんでした。私は私の答えを更新します – andresk

+0

ええ、 'createCollection'を与えようとしましたが、本当に' readMe'に 'rw'リクエストを与えました! – atulj