> For the complete documentation index, see [llms.txt](https://ryan-buick.gitbook.io/docs-2/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ryan-buick.gitbook.io/docs-2/data-warehouses/redshift.md).

# Redshift

Canvas requires a few fields in order to connect to your Redshift instance:

1. Host
2. Port
3. Database
4. Username and Password

We'll go through each of these.

### Host

The public address of your Redshift instance. You can find this in the AWS console. Note that you might need to check `Enable Public Access` from the AWS console. Additionally, if you block public access to your database you will need to whitelist the following IP addresses in your database's security group:

* 44.224.89.3
* 35.80.194.138
* 44.241.79.133

### Port

Also available in the AWS console. This is `5439` by default.

### Database

The database that you would like to work with in Canvas.

### Username and Password

In order to display your data Canvas requires a user with usage grants on any schemas you want to access and select grants on any tables and views you want to access. Following the [principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege), we recommend creating a user for Canvas with the minimum set of permission necessary. The following script will create a user and grant it permissions for the schema `public`:

```
CREATE USER 'canvas_user' PASSWORD 'your-strong-password';

// Grant access to schema "public". Repeat this for any other schemas you want to access
GRANT USAGE ON SCHEMA "public" TO canvas_user;
GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO canvas_user;
// This grants access to all future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA "public" GRANT SELECT ON TABLES TO canvas_user;
```
