将元数据库连接到 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的主要内容,如果未能解决你的问题,请参考以下文章