SQL Server 模拟
- 版本 :2022.1 及更高版本
此功能的主要优点是,它允许管理员在一个位置,即在管理员数据库中实现和控制其数据安全策略。当 Tableau 用户通过 SQL Server 数据库实时连接访问某一视图时,该视图仅显示该用户的数据库权限允许其查看的内容。另外一个优点是,在打开视图时,用户不必响应数据库登录提示。
此功能的主要优点是,它允许管理员在一个位置,即在管理员数据库中实现和控制其数据安全策略。当 Tableau 用户通过 SQL Server 数据库实时连接访问某一视图时,该视图仅显示该用户的数据库权限允许其查看的内容。另外一个优点是,在打开视图时,用户不必响应数据库登录提示。另外,工作簿发布者也不必依赖于用户特定筛选器来限制视图中显示的内容。
此部分中的其他文章
下面是使用此功能需要满足的要求:
仅限于 SQL Server 实时连接: 模拟只能用于具有 SQL Server 数据库(2005 或更高版本)实时连接的视图。
单个数据库帐户:将访问视图的每个人都必须在视图所连接的 SQL Server 数据库中具有明确的单个帐户。不能对 Active Directory (AD) 组的成员进行模拟。例如,如果 Jane Smith 是 AD 组“销售”的成员,并且她的数据库管理员将该“销售”AD 组添加到 SQL Server 数据库,则不能对 Jane 进行模拟。
匹配凭据和身份验证类型: 每个 Tableau 用户帐户的凭据及其 Tableau 用户身份验证类型都必须与其在 SQL Server 数据库中的凭据和身份验证类型匹配。举例来说,如果 Jane Smith 的 Tableau Server 用户帐户是
MyCo\jsmith
,则 SQL Server 数据库上的用户名也 必须是MyCo\jsmith
。SQL Server 必须使用 Windows 集成身份验证。SQL Server 先决条件:在 SQL Server 中,应具有一个数据安全表(一个强制实施数据安全性的视图),并且应要求数据库用户使用该视图。
SQL IMPERSONATE 帐户: 您需要一个对上述数据库用户具有 IMPERSONATE 权限的 SQL Server 数据库帐户。该帐户是具有管理员角色的帐户,或者是对于每个用户帐户都已被授予 IMPERSONATE 权限的帐户(请参见有关 EXECUTE AS 的 MSDN 文章)。SQL Server 帐户必须是下列帐户之一:
Tableau Server 用户运行身份帐户。请参见启用 Kerberos 服务帐户访问。
工作簿发布者帐户。请参见 使用嵌入式 SQL 凭据进行模拟。
下图说明了数据库用户模拟的工作原理:
在上图中,Jane Smith (MyCo\jsmith) 是一名西海岸地区销售代表,Henry Wilson (MyCo\hwilson) 是东部地区销售代表。在 SQL Server 数据库中,Jane 的帐户 MyCo\jsmith 的帐户权限仅允许她访问西海岸地区的数据。Henry 的帐户 MyCo\hwilson 只能访问东海岸地区的数据。
已创建了一个显示全国数据的视图。该视图具有 SQL Server 数据库实时连接。这两个用户都登录到 Tableau Server 中并单击该视图。Tableau Server 使用一个对于每个用户的数据库帐户都具有 IMPERSONATE 权限的数据库帐户连接到 SQL Server。此帐户代表每个用户的数据库帐户进行操作。
当该视图显示时,它受每个用户的各数据库权限的限制:Jane 只能查看西海岸地区的销售数据,Henry 只能查看东海岸地区的销售数据。
建议通过运行身份服务帐户进行模拟。运行身份服务帐户是一个 Active Directory 用户帐户,Tableau Server 服务可使用此帐户在承载 Tableau Server 的计算机上运行。该帐户必须拥有 SQL Server 中数据库用户帐户的 IMPERSONATE 权限。从数据安全性角度看,通过使用 Tableau Server 运行身份服务帐户进行模拟,管理员可进行最灵活的控制。
设置用户运行身份帐户模拟:
在 Tableau Desktop 中创建一个工作簿。在创建数据连接时,对工作簿到 SQL Server 数据库的实时连接选择“使用 Windows NT 集成安全性”:
在 Tableau Desktop 中,将该工作簿发布到 Tableau Server(“服务器”>“发布工作簿”)。
在“发布”对话框中,单击“身份验证”,然后在“身份验证”对话框中,从下拉列表中选择“通过服务器运行身份帐户进行模拟”:
单击“确定”。
通过以用户身份登录到 Tableau Server 来测试该连接。单击视图时,不应看到要求输入数据库凭据的提示,只应看到该用户有权查看的数据。
通过让视图发布者将其 SQL Server 帐户凭据嵌入到视图中,也可以执行模拟。Tableau Server 可在任何类型的帐户下运行,但它使用发布者提供的凭据连接到数据库。
如果处理模拟的帐户不能是 Active Directory (AD) 帐户,而您希望为工作簿发布者提供具有 SQL Server 上较高权限级别的帐户,这种方式可能适合您的站点。
注意:
若要使用这种方法,必须在 Tableau Server 中的服务器“设置”页面上启用嵌入式凭据:
使用工作簿发布者的 SQL 帐户进行模拟:
在 Tableau Desktop 中创建一个工作簿。在创建数据连接时,请为工作簿的 SQL Server 数据库实时连接选择“使用特定用户名和密码”:
将该工作簿发布到 Tableau Server(“服务器”>“发布工作簿”)。
在“发布”对话框中,单击“身份验证”,然后在“身份验证”对话框中,从下拉列表中选择“通过嵌入式密码进行模拟”:
单击“确定”。
通过以用户身份登录到 Tableau Server 来测试该连接。单击视图时,不应看到要求输入数据库凭据的提示,只应看到该用户有权查看的数据。