无法创建链接到雪花的服务器

时间:2019-12-02 19:17:28

标签: sql-server linked-server snowflake-data-warehouse

我遵循了所有可以找到的指示:

  1. 在我的SQL Server VM中安装了最新的Snowflake 64位ODBC驱动程序
  2. 为此创建了系统dsn(填写了“用户,服务器,数据库,架构,仓库,角色和跟踪”字段)
  3. 在SQL Server中,对于MSDASQL链接服务器提供程序,启用了以下参数:嵌套查询,仅零级,允许进程中,支持“赞”运算符
  4. 按照说明创建链接服务器
    • Provider =用于ODBC驱动程序的Microsoft OLE DB提供程序
    • 数据源:我创建的系统DSN的名称
    • 安全性:
    • 将本地登录名“ NT AUTHORITY \ SYSTEM”映射为远程用户名和密码(当我通过网络浏览器连接到Snowflake时,它们将起作用)
    • 点击“使用登录名的当前安全上下文进行设置” 单击确定时,出现以下错误

Error message

1 个答案:

答案 0 :(得分:0)

在链接服务器的安全性标签中:

  1. 您已将“ NT AUTHORITY \ SYSTEM”(这是sql服务帐户?)映射到远程用户名和密码。

  2. 对于不在列表中的其他任何登录,您都已选择使用该登录的当前安全上下文进行登录

您使用Windows登录名或SQL Server登录名连接到SQL Server。假设您使用domainxyz \ rick或用户名:sqlrick和密码:rick1212。 当您尝试使用链接服务器时,两种可能的登录名(domainxyz / rick或sqlrick)都不会映射到远程[snowflake]用户名和密码。因此,sql服务器会通过当前的安全上下文,该上下文是您的domainxyz / rick令牌或sqlrick用户名和密码。两者都不能在外部服务器上运行(它们甚至可以工作吗?)。

来自https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine

使用登录名的当前安全上下文创建 对于列表中未定义的登录,指定使用登录的当前安全上下文进行连接。如果使用Windows身份验证连接到本地服务器,则Windows凭据将用于连接到远程服务器。如果使用SQL Server身份验证连接到本地服务器,则将使用登录名和密码连接到远程服务器。在这种情况下,远程服务器上必须存在具有完全相同的名称和密码的登录名。

您可以将登录名映射到远程雪花用户名和密码,或选择

对于上面列表中未定义的登录,连接将: 使用 this 安全上下文创建,并在框中填写雪花的用户名和密码。

"2019-02"