将元数据库连接到 Sql Server

Posted

技术标签:

【中文标题】将元数据库连接到 Sql Server【英文标题】:Connect Metabase to Sql Server 【发布时间】:2018-02-09 10:56:50 【问题描述】:

我在我的 Windows 10 机器上安装了 Java 并下载了 Metabase.jar,然后运行了它。

现在我可以在 localhost:3000

访问元数据库

但我无法将我的 SQL Server 数据库设置为数据参考。

我要么得到:

无法连接到数据库。请检查连接详情。

5000 毫秒后超时。

有谁成功完成了 Metabase - SQL Server 连接?

【问题讨论】:

【参考方案1】:

目前,从元数据库版本 0.30.x 开始,答案取决于您是否可以使用直接在 SQL Server 上配置的用户:

更简单的设置选项是直接在 SQL Server 上配置用户。然后 config 只是名称:(任何内容),主机:(全名),数据库名称,用户名,密码,正如您所期望的那样。 (我认为您应该填写 Windows 域)

仅限 Windows 上,您还可以通过 sqljdbc_auth.dll 使用本机集成身份验证,只需指定 IntegratedSecurity=true 连接属性(以及可选的 authenticationScheme=NativeAuthentication)。我发现如果我将 x64 sqljdbc_auth.dll 放到我的 <java path>\jre\bin 文件夹中,它就会被拾取。元数据库配置如下图所示,除了删除authenticationScheme=JavaKerberos

跨平台authenticationScheme=JavaKerberos 选项用于对域用户使用 Windows 身份验证仍然可行,但更难。就是这些步骤:

    创建一个krb.conf 并验证登录是否可以使用<Java path>\bin\kinit.exe [user]。这是一个经过编辑的template,以匹配下面屏幕截图中的元数据库设置。

    使用参数启动 Metabase.jar 文件以加载 krb.conf。它适用于java -Djava.security.krb5.conf=c:/<path>/kerberos/krb.conf -jar metabase.jar

    现在根据下面的截图配置 Metabase 中的数据库设置

    关键时刻! ...

    可选:仍然无法正常工作?也许您的 SQL Server 没有为 Kerberos 配置?也许您需要 SPN 设置?也许你需要指定一个 java.security.auth.login.config (我自己没有经历过任何这些,我唯一能提供的就是你滚动到这篇文章的底部并潜入,然后用你得到的地方编辑你的问题你有什么配置)

使用 Kerberos 设置元数据库 SQL Server:

对于背景,当前(2018 年 8 月)很长:|总结了很多关于如何连接到 SQL Server 的链接是here in a Metabase discussion topic 注意:在 v0.30.0 中,动态端口处理问题(特别是对于使用命名实例的人)已得到修复。

相关:Kerberos on a Mac 上的一个简洁的 *** 答案

【讨论】:

【参考方案2】:

如果您连接到“命名实例”(SERVER_NAME/INSTANCE_NAME)而不是“默认实例”(SERVER_NAME),您的服务器可能配置为使用动态端口。

一个快速的脏修复方法是您可以使用以下脚本找到当前端口,然后在元数据库连接参数上使用它。但是这个端口很可能会在服务重启时发生变化。

选择不同的 local_tcp_port FROM sys.dm_exec_connections 其中 local_tcp_port 不为空

USE master
GO
Xp_readerrorlog

(查找“服务器正在侦听...”行)

更干净的方法是通过“SQL Server 配置管理器”-“SQL Server 网络配置”-“TCP/IP”-右键单击属性-“TCP 动态端口”为您的实例设置端口(应该有 0,应该删除)和“TCP 端口”(此处应设置新的默认端口)。并且“SQL Server Browser”服务也应该运行。更详细的解释是here

【讨论】:

以上是关于将元数据库连接到 Sql Server的主要内容,如果未能解决你的问题,请参考以下文章

ODBC无法连接SQL SERVER

SQL SERVER2008无法连接到服务器

无法远程连接到SQL Server(TCP错误)

SQL server 2005 无法连接到服务器?

如何使用ODBC数据连接连接到本地SQL Server? (我得到“登录失败”)

C# Dapper SQL Server 连接错误:连接字符串中不存在 Dapper 连接到另一个数据库