Closed ray-pacheco closed 4 months ago
cc @atheriel
Yeah this makes perfect sense, we should update the check to allow externalbrowser
as well.
Had a slightly different experience with this today--when connecting, I saw:
con <- dbConnect(snowflake(), authenticator = "externalbrowser")
#> Error in `dbConnect()`:
#> ! ODBC failed with error 00000 from [Snowflake][DSI].
#> ✖ (20032) Required setting 'UID' is not present in the connection settings.
So I set:
con <- dbConnect(snowflake(), authenticator = "externalbrowser", UID = "my@email.com")
...and the connection worked fine. I didn't look at the snowflake()
docs, but if I had, I would have seen that the case is uid
in dbConnect(snowflake())
and passed the argument with that case:
con <- dbConnect(snowflake(), authenticator = "externalbrowser", uid = "my@email.com")
#> Error in `DBI::dbConnect()`:
#> ! Both `uid` and `pwd` must be specified to authenticate.
#> ℹ Or leave both unset to use ambient Snowflake credentials.
So, for now, another workaround is to change the case of uid
, but this is another place of being bit by the case-insensitivity of argument keys in ODBC.
All that said, this is worth fixing. :)
For our Snowflake instance we have external auth set up, but the connection string requires we pass our user name. Currently
odbc::snowflake()
does not allow you to passuid
without also providingpwd
. Not sure if our setup is common, but I would like to be able to pass theuid
whenauthenticator
is specified without requiringpwd
be specified as well.