You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于用户/邮箱过滤Google Data Studio仪表盘实现权限控制

Google Data Studio 基于登录账号实现主管维度行级访问控制的实现方案

方案一:原生无代码配置(推荐优先使用)

不需要额外写代码,利用Looker Studio(原Google Data Studio)自带的行级权限能力即可实现:

  • 配置数据源凭据
    打开已绑定的Google Sheets数据源编辑页,右上角访问凭据设置选择查看者凭据,禁止使用所有者凭据,否则过滤规则无法对不同访问用户生效。
  • 调用系统内置用户参数
    在数据源字段面板点击「添加参数」,选择系统预置的@USER_EMAIL参数,该参数会自动拉取当前登录查看报告的Google账号邮箱,无需手动传值。
  • 配置全局过滤规则
    新建报告级过滤器,匹配规则设置为:数据表的Email字段 等于 @USER_EMAIL。

    匹配你提到的示例场景:只要数据表中归属主管Natalie管辖的所有行,Email字段值和Natalie的Google登录邮箱完全一致,过滤器生效后她就只能看到名下3条团队记录,自动聚合出的平均得分、记录数都会基于过滤后的数据集计算,不会展示其他主管的团队数据。

  • 效果校验
    配置完成后使用报告右上角的「预览为用户」功能,输入Natalie的邮箱测试,确认统计结果符合预期(3条记录、平均得分6)即可。

方案二:Google Apps Script 自定义管控(适配Google Sites部署场景)

如果需要更灵活的权限逻辑(如临时授权、跨团队权限继承),可以结合GAS做数据源层面的权限过滤,避免前端过滤被绕过:

  • 第一步:在存储数据的Google Sheets中绑定脚本
    打开对应数据表,点击「扩展程序 > Apps Script」,编写权限过滤逻辑:
    function getUserPermittedData() {
      const SHEET_NAME = '替换为你实际存储数据的工作表名称';
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
      const allData = sheet.getDataRange().getValues();
      // 获取当前访问用户的登录邮箱
      const currentEmail = Session.getActiveUser().getEmail();
      // 过滤当前用户管辖范围内的数据,跳过表头行
      const permittedRows = allData.slice(1).filter(row => row[3].trim().toLowerCase() === currentEmail.trim().toLowerCase());
      // 预计算聚合值,降低前端渲染压力
      const recordCount = permittedRows.length;
      const avgScore = recordCount ? permittedRows.reduce((sum, row) => sum + Number(row[1] || 0), 0) / recordCount : 0;
    
      return {
        detail: permittedRows,
        stat: {
          totalCount: recordCount,
          averageScore: Math.round(avgScore * 100) / 100
        }
      }
    }
    
  • 第二步:部署Web应用
    将脚本部署为Web应用,执行身份选择「以访问用户身份运行」,访问权限限定为组织内成员。
  • 第三步:嵌入Google Sites
    可以直接在Google Sites中插入Apps Script组件展示自定义渲染的统计面板,也可以将GAS返回的过滤后数据作为自定义数据源接入Data Studio,从数据源层就只返回当前用户有权限查看的内容,安全性更高。

配置注意事项

  • 不要给报告查看者开放数据源、过滤器的编辑权限,否则用户可以自行删除过滤规则查看全量数据
  • 邮箱匹配为精确匹配,建议提前在Sheets中用TRIM()、LOWER()函数清洗Email字段,避免空格、大小写差异导致匹配失败
  • 如果你的组织开启了Google Workspace管理员限制,需要确认@USER_EMAIL、Session.getActiveUser()接口的调用权限已经对报告/脚本开放

内容的提问来源于stack exchange,提问作者Abhijeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 08:36:18