mysql - 从 google doc 到 MySQL 数据库的自动数据上传 - 如何在 google 脚本中隐藏数据库凭据
问题描述
我有一项重复性的任务,就是将数据从谷歌文档上传到 MySQL 数据库。它的手册现在,我想自动化它..
为了将数据库中的数据提取到谷歌文档中,我通常使用下面的内容,然后将数据粘贴到其中一张表中——效果很好。
Jdbc.getConnection('jdbc:mysql://host:port/', user, password);
var stmt = conn.createStatement();
stmt.setMaxRows(1000);
var start = new Date();
var rs = stmt.executeQuery(exq);
根据谷歌的文档,我也可以使用 JDBC 来做这件事。尚未尝试过,但也应该可以正常工作。
https://developers.google.com/apps-script/guides/jdbc
不过,这是我的问题:每个人都可以打开脚本编辑器并查看代码(包括凭据)。
从数据库中提取没关系,因为用户只有阅读权限,而且我对公司内部的这些内容并不太保密。但是要将数据推送到数据库中,用户必须具有写入权限,因此我显然无法共享它们..
你能想出一种巧妙的方法来隐藏脚本以使凭据不可见吗?任何其他这样做的方式也将受到高度赞赏。
解决方案
对 Google 表格/文档/幻灯片拥有编辑权限的任何人都将始终拥有对其所有绑定脚本项目的查看和编辑权限。
要隐藏凭据,您有几个选项:
- 使用 PropertiesService 为您自己设置一些特定于用户的属性(然后在创建新脚本版本或其他人打开脚本编辑器之前删除您编写的一次性函数以将凭据填充到您的用户属性中)。
- 创建一个独立脚本,用于
openById
访问包含要上传数据的电子表格(并在必要时更改 ID)。不要与不应访问凭据的任何人共享此独立脚本。 - 创建一个私人发布的 GSuite 插件,在上传之前执行一些身份检查,否则允许阅读,并将此插件安装到必要的电子表格中。
推荐阅读
- python-3.x - 如何在不转换为python中的列表的情况下逐步在字符串前面添加元素?
- eclipse-plugin - Eclipse 插件:在测试期间模拟命令行参数
- javascript - 如果另一个单元格包含值,则将类添加到表格单元格
- sql - INNER JOIN 多个表 - 访问
- excel - 如何使用 Excel VBA 更新比特率为 128 kbps 的 MP3 文件的 MP3 文件属性
- pddl - 求解器说这个 pddl 问题的语法错误,但我找不到。这里出了什么问题?
- python - 操作多索引数据框的最快方法是什么?
- python - 替换numpy中的特定矩阵元素
- r - 如何在 r 中对 TCGA 数据运行 PCA?
- azure-devops-migration-tools - 迁移初始化后使用 PAT 不起作用,也无法让用户、通行证、域工作