{"version":3,"sources":["webpack:///./src/pages/docs/Connecting to Databases/snowflake.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","isMDXComponent"],"mappings":"wPAMaA,G,UAAe,S,sOAE5B,IAKMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAC5E,iBAAQ,CACN,GAAM,aADR,aAGA,4EAEE,gBAAO,CACL,KAAQ,iDACR,WAAc,KAFhB,wBAFF,KAOA,6EACA,uBAAK,mBAAU,CACX,WAAc,OADb,oGAIL,kMAEA,uBAAK,mBAAU,CACX,WAAc,OADb,kEAIL,4jB,oOAUJH,EAAWI,gBAAiB","file":"component---src-pages-docs-connecting-to-databases-snowflake-mdx-b77ce604b6295b7d74c7.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/max/code/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\n\nconst makeShortcode = name => function MDXDefaultShortcode(props) {\n  console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n  return <div {...props} />;\n};\n\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    <h2 {...{\n      \"id\": \"snowflake\"\n    }}>{`Snowflake`}</h2>\n    <p>{`The recommended connector library for Snowflake is\n`}\n      <a {...{\n        \"href\": \"https://pypi.org/project/snowflake-sqlalchemy/\",\n        \"parentName\": \"p\"\n      }}>{`snowflake-sqlalchemy`}</a>\n      {`.`}</p>\n    <p>{`The connection string for Snowflake looks like this:`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`snowflake://{user}:{password}@{account}.{region}/{database}?role={role}&warehouse={warehouse}\n`}</code></pre>\n    <p>{`The schema is not necessary in the connection string, as it is defined per table/query. The role and\nwarehouse can be omitted if defaults are defined for the user, i.e.`}</p>\n    <pre><code {...{\n        \"parentName\": \"pre\"\n      }}>{`snowflake://{user}:{password}@{account}.{region}/{database}\n`}</code></pre>\n    <p>{`Make sure the user has privileges to access and use all required\ndatabases/schemas/tables/views/warehouses, as the Snowflake SQLAlchemy engine does not test for\nuser/role rights during engine creation by default. However, when pressing the “Test Connection”\nbutton in the Create or Edit Database dialog, user/role credentials are validated by passing\n“validate_default_parameters”: True to the connect() method during engine creation. If the user/role\nis not authorized to access the database, an error is recorded in the Superset logs.`}</p>\n\n  </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}