| # Mongo storage plugin credentials |
| |
| Apache Drill provides the ability to connect and submit queries to |
| the MongoDB cluster with enabled authentication. |
| |
| ## Configuring storage plugin |
| |
| Drill provides numerous ways for providing credentials |
| that will be used for connecting to MongoDB. |
| |
| ### Providing username and password with the connection string |
| |
| The simplest way for providing credentials is by specifying them within the mongo connection string: |
| |
| ```json |
| { |
| "type": "mongo", |
| "connection": "mongodb://user1:user1Pass@mongoHost:27017/", |
| "batchSize": 100, |
| "enabled": true |
| } |
| ``` |
| |
| where |
| - `user1` - name of the user |
| - `user1Pass` - user password |
| - `mongoHost` mongo host |
| |
| This way of providing username and password takes precedence over all other methods. |
| |
| ### Providing username and password with Credentials Provider |
| |
| Mongo storage plugin is integrated with Credentials provider, so it is possible to specify credentials using it. |
| |
| Credentials provider creates connection string with provided username and password, |
| similar to the previous section, so Drill will use this connection string when connecting to MongoDB. |
| |
| Here is the example of using Plain Credentials Provider with Mongo storage plugin, but it is possible to use any |
| other Credentials Provider implementation (including custom ones) in a similar manner: |
| |
| ```json |
| { |
| "type": "mongo", |
| "connection": "mongodb://mongoHost:27017/", |
| "batchSize": 100, |
| "credentialsProvider": { |
| "credentialsProviderType": "PlainCredentialsProvider", |
| "credentials": { |
| "username": "user1", |
| "password": "user1Pass" |
| } |
| }, |
| "enabled": true |
| } |
| ``` |
| |
| Please refer to [Plugin credentials provider](https://github.com/apache/drill/blob/master/docs/dev/PluginCredentialsProvider.md#developer-notes) |
| for more details related to Credentials Provider. |