Connect to a Snowflake account via the Snowflake ODBC driver.
In particular, the custom dbConnect() method for the Snowflake ODBC driver
detects ambient OAuth credentials on platforms like Snowpark Container
Services or Posit Workbench. It can also detect viewer-based
credentials on Posit Connect if the connectcreds package is
installed.
In addition, on macOS platforms, the dbConnect method will check and warn
if it detects irregularities with how the driver is configured, unless the
odbc.no_config_override environment variable is set.
snowflake()
# S4 method for class 'SnowflakeOdbcDriver'
dbConnect(
drv,
account = Sys.getenv("SNOWFLAKE_ACCOUNT"),
driver = NULL,
warehouse = NULL,
database = NULL,
schema = NULL,
uid = NULL,
pwd = NULL,
...
)An object that inherits from DBI::DBIDriver, or an existing DBI::DBIConnection object (in order to clone an existing connection).
A Snowflake account identifier,
e.g. "testorg-test_account".
The name of the Snowflake ODBC driver, or NULL to use the
default name.
The name of a Snowflake compute warehouse, or NULL to use
the default.
The name of a Snowflake database, or NULL to use the
default.
The name of a Snowflake database schema, or NULL to use the
default.
Manually specify a username and password for authentication. Specifying these options will disable ambient credential discovery.
Further arguments passed on to dbConnect().
An OdbcConnection object with an active connection to a Snowflake
account.
if (FALSE) { # \dontrun{
# Use ambient credentials.
DBI::dbConnect(odbc::snowflake())
# Use browser-based SSO (if configured). Only works on desktop.
DBI::dbConnect(
odbc::snowflake(),
account = "testorg-test_account",
authenticator = "externalbrowser"
)
# Use a traditional username & password.
DBI::dbConnect(
odbc::snowflake(),
account = "testorg-test_account",
uid = "me",
pwd = rstudioapi::askForPassword()
)
# Use credentials from the viewer (when possible) in a Shiny app
# deployed to Posit Connect.
library(connectcreds)
server <- function(input, output, session) {
conn <- DBI::dbConnect(odbc::snowflake())
}
} # }