кодесурса
«MongoDB

MongoDB: метод db.createRole ()

script1adsense2code
script1adsense3code

db.createRole ()

Метод db.createRole () используется для создания роли в базе данных, и привилегии для этой роли могут быть указаны путем явного перечисления привилегий или наличия роли, наследующей привилегии от других ролей или обеих. Роль применяется к базе данных, в которой вы запускаете метод.

Синтаксис:

 db.createRole (role, writeConcern)

Параметры:

название Описание Необходимые /
Необязательный
Тип
роль Документ, содержащий название роли и определение роли. необходимые документ
writeConcern Уровень записи относится к этой операции. Документ writeConcern использует те же поля, что и команда getLastError. Необязательный документ

Ролевый документ имеет следующую форму:

{
  role: "<name>",
  privileges: [
     { resource: { <resource> }, actions: [ "<action>", ... ] },
     ...
  ],
  roles: [
     { role: "<role>", db: "<database>" } | "<role>",
      ...
  ]
}

Документ роли имеет следующие поля:

поле Описание Тип
роль Название новой роли. строка
привилегии Привилегии для предоставления роли. Привилегия состоит из ресурса и разрешенных действий. Синтаксис привилегий см. В массиве привилегий.
Вы должны включить поле привилегий. Используйте пустой массив, чтобы не указывать никаких привилегий.
массив
роли Массив ролей, от которых эта роль наследует привилегии.
Вы должны включить поле ролей. Используйте пустой массив, чтобы не указывать роли для наследования.
массив

В поле ролей вы можете указать как встроенные роли, так и определенные пользователем роли.

Чтобы указать роль, которая существует в той же базе данных, где выполняется db.createRole (), вы можете указать роль с именем роли:

"readWrite"

Или вы можете указать роль с документом, как в:

{ role: "<role>", db: "<database>" }

Чтобы указать роль, которая существует в другой базе данных, укажите роль с документом.

Пример: MongoDB: метод db.createRole ()

Следующий метод db.createRole () создает роль myroll1 в базе данных администратора:

use admin
db.createRole(
   {
     role: "myroll1",
     privileges: [
       { resource: { cluster: true }, actions: [ "addShard" ] },
       { resource: { db: "config", collection: "" }, actions: [ "find", "update", "insert", "remove" ] },
       { resource: { db: "users", collection: "usersCollection" }, actions: [ "update", "insert", "remove" ] },
       { resource: { db: "", collection: "" }, actions: [ "find" ] }
     ],
     roles: [
       { role: "read", db: "admin" }
     ]
   },
   { w: "majority" , wtimeout: 5000 }
);

Выход:

 {
        "роль": "myroll1",
        «привилегии»: [
                {
                        "ресурс": {
                                "кластер": правда
                        },
                        "действия": [
                                "AddShard"
                        ]
                },
                {
                        "ресурс": {
                                "db": "config",
                                "коллекция": ""
                        },
                        "действия": [
                                "находить",
                                "Обновить",
                                «Вставить»,
                                "Удалить"
                        ]
                },
                {
                        "ресурс": {
                                "db": "пользователи",
                                "collection": "usersCollection"
                        },
                        "действия": [
                                "Обновить",
                                «Вставить»,
                                "Удалить"
                        ]
                },
                {
                        "ресурс": {
                                "дБ": "",
                                "коллекция": ""
                        },
                        "действия": [
                                "находить"
                        ]
                }
        ],
        "роли": [
                {
                        "роль": "читать",
                        "db": "admin"
                }
        ]
}

Получить данные о ресторанах здесь

Поведение

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

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

Метод db.createRole () возвращает ошибку дублирующейся роли, если роль уже существует в базе данных.

Требуемый доступ

Чтобы создать роль в базе данных, вы должны иметь:

  • действие createRole для этого ресурса базы данных.
  • действие grantRole в этой базе данных, чтобы указать привилегии для новой роли, а также указать роли для наследования.

Предыдущий: метод db.getUsers ()
Далее: метод db.updateRole ()

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code