--- title: 'Connect to a Data source' description: 'Learn how to connect to an external data-source (PG/MySQL) in NocoDB.' tags: ['Data Sources', 'Connect', 'External', 'PG', 'MySQL', 'mtls', 'tls', 'ssl'] keywords: ['NocoDB data source', 'connect data source', 'external data source', 'PG data source', 'MySQL data source'] --- To connect to an external data source, follow the steps below: 1. Access the Base context menu by clicking on the `...` in the left sidebar against the base name 2. Click on `Settings` tab 3. In the popup modal, click on `Data Sources` tab 4. Click on `+ New Data Source` button 5. On the input modal, provide the following details: | Field Name | Description | |---------------|--------------------------------------------------------------------------------------| | Source Name | Name for this data source for display on NocoDB UI | | Database Type | Type of the data source. Currently, NocoDB supports PostgreSQL & MySQL data sources. | | Host Address | Hostname of the data source | | Port Number | Port number of the data source | | Username | Username to connect to the database | | Password | Password to connect to the database | | Database | Name of the database to connect to | | Schema name | Name of the schema to connect to | 5a. Optionally, if the connection required is TLS/MTLS for MITM protection, follow these additional steps below: - Click on `SSL & Advanced Parameters` - Select `SSL Mode` and upload the client certificate, client key, and Root CA files by clicking on the file. \ Note: The entire connection parameters can be viewed in json form by clicking on the "Edit connection JSON" and edited as required by database server type.\ \ Example: In PostgreSQL when SSL mode set to "Required-Identity," if the server certificate's common name (cname) differs from the actual DNS/IP used for connection, the connection will fail.\ To resolve, add "servername" property with same cname value under the SSL section. Additional details are available at [knex configuration options](https://knexjs.org/guide/#configuration-options). 6. Click on the `Test Database Connection` button to verify the connection 7. Wait for the connection to be verified. - After test is successful, `Counnect to Data Source` button will be enabled. - Click on `Connect to Data Source` button to save the data source. ![data source-1](/img/v2/data-source/ds-connect-1.png) ![data source-2](/img/v2/data-source/ds-connect-2.png) ![data source-3](/img/v2/data-source/ds-connect-3.png) ![data source-4](/img/v2/data-source/ds-connect-4.png) ## Configuring Permissions When connecting NocoDB to external data sources such as PostgreSQL, it is crucial to configure the appropriate permissions to ensure data integrity and security. This section explains the options available for schema and data editing, allowing you to tailor the access levels according to your requirements. ![data source-1](/img/v2/data-source/data-source-permissions.png) NocoDB provides the following options for schema and data permissions: ### Schema Permissions This option enables users to modify the structure of the database schema. When enabled, users can create, modify, and delete tables, fields and relationships (links) within the connected datasource from NocoDB UI. This provides flexibility to adjust the database design as needed from UI but should be used with caution. Toggle `Allow Schema Edit` to enable or disable schema editing for the connected datasource. By default, schema editing is disabled. Even when schema editing is disabled, users can still - add (augment) virtual columns such as Lookup, Rollup and Formula. These virtual columns do not alter the underlying schema of the connected data source. - create views to customize the data presentation without modifying the original tables. - create webhooks to trigger external actions based on specific events within the connected datasource. - collaborate with other users by explicitly inviting them to the base or by sharing views. ### Data Permissions This option enables users to modify the data (records) within the connected datasource. When enabled, users can insert, update, and delete records from the tables. This provides the flexibility to manage the data directly from the NocoDB UI but should be used with caution to avoid unintentional changes to the records in the external data source. Toggle `Allow Data Edit` to enable or disable data editing for the connected datasource. By default, data editing is enabled. When data editing is disabled, users can still view the data and perform read-only operations such as filtering, sorting, and grouping. This ensures that users can access the data for analysis and reporting purposes without the risk of modifying the records. :::note Data editing can only be disabled when schema editing is also disabled :::