Tableau 2018.1连接SQL Server 2012时自建数据库不显示问题求助
我来帮你一步步排查这个问题,这种情况通常和权限、连接配置或者数据库本身的状态有关,咱们挨个来检查:
1. 检查SQL Server登录账号的权限
这是最常见的原因。你用来连接Tableau的SQL Server账号,必须具备查看用户数据库的权限。可以在SQL Server Management Studio(SSMS)里执行以下命令确认:
USE master; EXEC sp_helplogins '你的登录账号';
查看该账号对应的用户是否在自建数据库里拥有db_datareader(至少)或更高权限。如果没有,需要给账号授权:
USE 你的自建数据库名; CREATE USER [你的登录账号] FOR LOGIN [你的登录账号]; ALTER ROLE db_datareader ADD MEMBER [你的登录账号];
另外,确保这个账号有VIEW ANY DATABASE服务器权限,否则可能无法在列表中看到数据库,执行:
GRANT VIEW ANY DATABASE TO [你的登录账号];
2. 确认Tableau的连接方式是否正确
- 如果用的是Windows身份验证,要保证Tableau运行的Windows账号(也就是你当前登录Windows的账号)有访问自建数据库的权限,权限检查逻辑和上面一致。
- 如果是SQL Server身份验证,先在SSMS里用这个账号测试连接,确认能看到并访问自建数据库,排除账号本身的问题。
3. 检查SQL Server的数据库可见性设置
有些情况下数据库可能被设为隐藏状态:在SSMS里右键你的自建数据库 → 属性 → 选项 → 找到「数据库可见性」,确认设置为「正常」(默认是正常,但如果被修改过就会无法显示)。
4. 验证Tableau的SQL Server驱动版本
Tableau 2018.1需要匹配SQL Server 2012的驱动。你可以打开Tableau → 帮助 → 关于Tableau,查看已安装的驱动版本。如果驱动不兼容,建议安装SQL Server Native Client 11.0(对应SQL Server 2012的官方驱动),确保驱动版本匹配且正常。
5. 检查数据库是否处于在线状态
在SSMS里执行以下命令,确认数据库状态:
SELECT name, state_desc FROM sys.databases WHERE name = '你的自建数据库名';
确保state_desc显示为ONLINE,如果是RESTORING、OFFLINE等状态,Tableau肯定无法识别它。
6. 尝试手动输入数据库名连接
如果下拉列表加载有问题,试试在Tableau的连接界面直接手动输入自建数据库名称,看能否成功连接。有时候下拉列表的加载异常可以通过手动输入绕过。
内容的提问来源于stack exchange,提问作者Ezell Franklin

