{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/postgres.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"wPAQaA,G,UAAe,S,qOAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,YADR,YAGA,iEAAgD,6BAAGC,WAAW,KAAQ,CAClE,KAAQ,kCADoC,YAAhD,yCAIA,+DACA,sBACE,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,aAApB,cACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,YAApB,gBACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,iBAApB,IACE,kBAAIA,WAAW,MACb,kBAAIA,WAAW,MAAf,yCACA,kBAAIA,WAAW,MAAf,wCACA,kBAAIA,WAAW,MAAf,sBAGJ,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,iBAApB,mBACA,kBAAIA,WAAW,MAAK,sBAAQA,WAAW,MAAnB,QAApB,mBAEF,0DACA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,kEAEL,sDAAqC,0BAAYA,WAAW,KAAvB,oBAArC,gBACA,uBAAK,gCAAMA,WAAW,OAAU,IAA3B,kFAEL,0FACF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,uDADd,sCADE,KAIA,kGACF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,8GADd,mBADE,cAKF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,mFADd,mBALE,W,mOAYJJ,EAAWK,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-postgres-mdx-cb1d74f0b4ac332bd74d.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/home/runner/work/superset/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h2 {...{\n      \"id\": \"postgres\"\n    }}>{`Postgres`}</h2>\n    <p>{`Note that the Postgres connector library `}<a parentName=\"p\" {...{\n        \"href\": \"https://www.psycopg.org/docs/\"\n      }}>{`psycopg2`}</a>{` comes out of the\nbox with Superset.`}</p>\n    <p>{`Postgres sample connection parameters:`}</p>\n    <ul>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`User Name`}</strong>{`: UserName`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Password`}</strong>{`: DBPassword`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Database Host`}</strong>{`:`}\n        <ul parentName=\"li\">\n          <li parentName=\"ul\">{`For Localhost: localhost or 127.0.0.1`}</li>\n          <li parentName=\"ul\">{`For On Prem: IP address or Host name`}</li>\n          <li parentName=\"ul\">{`For AWS Endpoint`}</li>\n        </ul>\n      </li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Database Name`}</strong>{`: Database Name`}</li>\n      <li parentName=\"ul\"><strong parentName=\"li\">{`Port`}</strong>{`: default 5432`}</li>\n    </ul>\n    <p>{`The connection string looks like:`}</p>\n    <pre><code parentName=\"pre\" {...{}}>{`postgresql://{username}:{password}@{host}:{port}/{database}\n`}</code></pre>\n    <p>{`You can require SSL by adding `}<inlineCode parentName=\"p\">{`?sslmode=require`}</inlineCode>{` at the end:`}</p>\n    <pre><code parentName=\"pre\" {...{}}>{`postgresql://{username}:{password}@{host}:{port}/{database}?sslmode=require\n`}</code></pre>\n    <p>{`You can read about the other SSL modes that Postgres supports in\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://www.postgresql.org/docs/9.1/libpq-ssl.html\"\n      }}>{`Table 31-1 from this documentation`}</a>{`.`}</p>\n    <p>{`More information about PostgreSQL connection options can be found in the\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2\"\n      }}>{`SQLAlchemy docs`}</a>{`\nand the\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://www.postgresql.org/docs/9.1/libpq-connect.html#LIBPQ-PQCONNECTDBPARAMS\"\n      }}>{`PostgreSQL docs`}</a>{`.`}</p>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}