Как я могу создавать определяемые пользователем роли в mongoDB

У меня есть база данных в mongoDB 2.6.4, в которой я хочу ограничить пользователей в соответствии с их уровнем. Я хочу предоставить привилегии чтения какому-то пользователю и вставить / обновить привилегии какому-то пользователю в конкретной базе данных. Пожалуйста, дайте мне знать, как я может создавать определяемые пользователем роли и назначать их пользователю. Я пробовал следующее, но он не работает, у пользователя все еще есть полные привилегии.

db.runCommand({createRole: "read",
               privileges: [
                   { resource: { db: "sample", collection: "" }, 
                     actions: [ "find" ] 
                   }],
               roles: [],
               writeConcern: { w: "majority" , wtimeout: 5000 }
             })

==================================================================================

db.addUser( { user : "read",
              pwd  : "read",
              roles:["read"]
        } )

person user2589918    schedule 30.12.2014    source источник
comment
Stackoverflow - это сайт для разработчиков программного обеспечения. Но обработка разрешений в базах данных - это проблема конфигурации, которую должен решить администратор базы данных. Я назначил ваш вопрос для перехода на dba.stackexchange.com.   -  person Philipp    schedule 30.12.2014
comment
К вашему сведению - в MongoDB 2.6.4 чтение является встроенной ролью docs.mongodb.org/manual/reference/built-in-roles/, поэтому вам не нужно создавать роль, вы можете просто создать пользователя, предоставив ему роль чтения в образец базы данных. Убедитесь, что вы запускаете mongod с --auth, и при подключении вам необходимо аутентифицировать пользователя.   -  person Kay    schedule 31.12.2014
comment
Я уже пробовал это, но этот пользователь, получивший права чтения, может выполнять операцию творога в базе данных.   -  person user2589918    schedule 31.12.2014


Ответы (1)


Используйте следующую команду для входа в систему от имени администратора

use admin
db.createRole(
   {
     role: "appsRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)

Вышеупомянутая роль будет создана, и ей будут предоставлены привилегии статуса сервера. Для получения более подробной информации внимательно проверьте документацию mongodb.

person doc123    schedule 06.01.2015