2015-01-02 2 views
-2

я создаю пользователь в Монго дб, который может выполнять следующие операции на базе: -Создать пользователь с некоторым ограничением в Монго дб

  • createCollection
  • CreateIndex
  • найти
  • вставки
  • обновления

Но пользователь не может удалить или удалить запись f rom/коллекция.

Я использую следующий код: -

db.addUser({ 
      user:"rwUser", pwd:"password", 
      roles:["readWrite"] 
      }) 

Но пользователь может удалить запись тоже. как я могу ограничить пользователя удалением записи из базы данных.

+0

@ Duane13 Я хочу, чтобы дать все разрешение только хочет ограничить удаление записи. –

+0

Это не вопрос программирования, а о администрировании баз данных и должен был быть отправлен на dba.stackexchange.com [http://dba.stackexchange.com]. Тем не менее, было бы нелегко найти это и прочитать документацию. –

ответ

2

Вы можете создать пользовательскую роль с желавшими привилегиями: http://docs.mongodb.org/manual/tutorial/define-roles/

Подключения к вашему Монго и db.createRole с пожелавшими привилегиями. Вы можете найти привилегии, перечисленные здесь: http://docs.mongodb.org/manual/reference/privilege-actions/. Затем просто предоставите пользователю эту роль или создайте пользователя с этой ролью.

Привилегии, которые вы хотите здесь:

createCollection 
createIndex 
find 
insert 
update 

Так, например:

db.createRole(
    { 
    role: "foobarRole", 
    privileges: [ 
     { resource: { db: "exampleDb", collection: "bar" }, actions: [ "createCollection", "createIndex", "find", "insert", "update" ] } 
    ], 
    roles: [] 
    } 
) 

И предоставить это существующему пользователю:

db.grantRolesToUser(
    "foobarUser", 
    [ 
    { role: "foobarRole", db: "exampleDb" } 
    ] 
) 
+0

Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. –

+0

Спасибо Дарин, я улучшил свой ответ. Честно говоря, я думал, что это была понятная концепция, если бы она просто искала ее. Вот почему я просто указал на соответствующий документ в первую очередь. – Sampsa

+0

Per nwarriorch, который попытался отредактировать это, но не имел комментариев для комментариев: * Примечание: вы не можете запускать 'aggregate(), mapReduce()' или 'findAndModify()' с указанным выше набором разрешений. * –

Смежные вопросы