使用 TableauServerClient 从 Tableau Server 获取指定组的所有用户

问题描述 投票:0回答:1

我想使用 TSC 包获取我们 Tableau 服务器站点上 3 个 AD 组的所有用户的列表。根据现有的一些资源,我使用 Python 进行了以下操作。

第一个代码片段返回我们网站上的所有用户并将列表导出到 Excel。第二个片段是我尝试应用一个过滤器,该过滤器仅返回 3 个 AD 组中的用户,但它返回 0 个用户。

我们的网站使用 AD 组来提供访问权限。我需要验证这 3 个组的成员是否有权访问仪表板使用的数据源。计划是从 Tableau 服务器获取用户列表,并将组列表与有权访问数据源的用户列表合并,以返回一个输出,该输出将标记我仅在 _merge 中留下的实例。

如有任何意见,我们将不胜感激。

返回站点上的所有用户。

import tableauserverclient as TSC
import pandas as pd

tableau_auth = TSC.PersonalAccessTokenAuth('Y14_Dashboard_Update','access-token-xyz',site_id = 'site-name') 
server = TSC.Server('https://tableau-site/',use_server_version=True)

with server.auth.sign_in(tableau_auth):

  request_options = TSC.RequestOptions(pagesize=1000)

  all_users, pagination_item = server.users.get(request_options)

  

  print("\nThere are {} user on site: ".format(pagination_item.total_available))

  all_users_on_site = pd.DataFrame({'Users': [user.name for user in all_users]})

  all_users_on_site.to_excel(r"C:\\Users\TABLEAU_User_ME\Documents\Projects\Tableau_Users.xlsx", index = False)

修改为按3组进行过滤;返回 0 个用户。

import tableauserverclient as TSC
import pandas as pd

tableau_auth = TSC.PersonalAccessTokenAuth('Y14_Dashboard_Update','access-token-xyz',site_id = 'site-name') 
server = TSC.Server('https://tableau-server-site/',use_server_version=True)

with server.auth.sign_in(tableau_auth):

    request_options = TSC.RequestOptions(pagesize=1000)
    request_options.filter.add(TSC.Filter(TSC.RequestOptions.Field.Name, 
                                          TSC.RequestOptions.Operator.In,
                                          ["AD-Group1","AD-Group2", "AD-Group3"],)         
        )
    matching_groups, pagination_item = server.users.get(request_options)
    
    print("\nThere are {} user on site: ".format(pagination_item.total_available))
    all_users_on_site = pd.DataFrame({'Users': [user.name for user in matching_groups]})

  all_users_on_site.to_excel(r"C:\\Users\TABLEAU_User_ME\Documents\Projects\Tableau_Users.xlsx", index = False)
python tableau-api
1个回答
0
投票

是否必须在 python 中使用 tableauserverclient ? 否则,您可以查询 Tableau 存储库(启用访问权限后)

© www.soinside.com 2019 - 2024. All rights reserved.