セキュリティGoogle Apps スクリプトは屈強なセキュリティモデルを備えることによってあなたのデータを守ります。
スプレッドシートのスクリプトにおいて、それぞれ異なった許可レベルで実行出来る事を示したのが次の表になる
スクリプト実行の許可メニューアイテムやイメージをクリックしてスクリプトが呼び出されると、スクリプトはログインして、クリックした人間のIDのもとで実行される。この人間は、スプレッドシート所有者か編集者でなければならない。 カスタム関数は、スプレッドシートが編集されると匿名で実行される。カスタム関数スクリプトは、特定のユーザーに関する情報にはアクセス出来ない。例えば、カスタム関数のあるセルの値を変更して、保存された時、その修正が匿名ユーザーによって行われたことが表示される。 イベント実行の許可onOpen、onEdit、onInstallのような単純なイベントは、スプレッドシート操作者のIDの元で実行される。インストール可能イベント(スプレッドシートトリガー)は、トリガー作成者のIDの元で実行される。 時限トリガーの実行時限トリガーは非公開である。トリガーをインストールするには、ユーザーは少なくともリードオンリーの許可がなければならない、言い換えれば、ユーザーはスクリプトエディタでスクリプトを開けなけらばならない。スクリプトがシェアされていたとしても、トリガーはシェアできない。 トリガーでスクリプトが起動されると、トリガーの所有者のIDの元実行される。それはトリガーをインストールいた人間という意味で。 サービスとしてスクリプトを実行する許可スクリプトのオーナーは、スクリプトをサービスとして発行するための独占的な許可を与えられている。サービスとして発行されたスクリプトは、スクリプト所有者のIDの元で実行される。 スクリプトギャラリーから新たなスクリプトをインストールするときや、誰かが書いたスクリプトの入ったスプレッドシートをコピーしたり、あなたが書いたスクリプトも含めて最初にスクリプトを実行するとき、アクセスする予定のサービスにアクセスする権利をスクリプトに明示的に与えなければならない。セキュリティ認証ダイアログボックスが表示されるのが見えるだろう。それには、スクリプト名、所有者、アクセスすることが必要なサービスが書いてある。 ![]() 次のダイアログボックスも表示されるかもしれない。スクリプトが特定のGoogle アプリケーション又は、サービスにアクセスする要求が表示される。 もしあなたが書いたか実行したスクリプトがあなたの情報にアクセスすることが必要で、アクセスを要求してきたなら、それを取り消すことが出来る。 スクリプトのアクセスを取り消すには
Google Appsスクリプトを使用して書いたスクリプトは、あらゆることが出来る。しかしながら、すべての機能があらゆる環境で使える訳ではない。 カスタム関数は、スプレッドシートが再計算された時いつでも実行されます。例えば、XMLチュートリアルでのthe Oracle of Baconスクリプトはカスタム関数=kb(actor1, actor2)を使用してます。カスタム関数は現在のスプレッドシートからデータを読み取ったり、SOAP、UrlFetch、Google翻訳などの匿名サービスを呼ぶことが出来ます。非特有サービスとは、ユーザーの認証が必要ないサービスのことである。ユーザー特有サービスとはあるユーザーに関連するサービスで、Google カレンダーがそれに当たる。ユーザー特有サービスはカレンダーのような、ユーザーのプライベートな情報を貯めこむものもあるし、メールの送信みたいな、ユーザーとして行うものもある カスタム関数とすべてのシンプルイベントハンドラはユーザーがそれを意識することなく実行され、ユーザー特有サービスにアクセスをすることは出来ない。Appsスクリプトはカスタム関数がユーザーのプライベートな情報を獲得することを禁止している。例えばカレンダー、Gmail,サイトとか。カスタム関数は返し値以外スプレッドシートに書き込むことは出来ない。カスタム関数はそれが置かれているセルのみ書き込むことが出来る。 onEdit関数はカスタム関数と同様に動く。onEdit関数はユーザーがそれを意識することなく実行され、Google AppsスクリプトはonEdit関数がユーザーの情報にアクセスすることを禁止している。onEdit関数は、SOAP とかUrlFetchなどの非特有サービスを呼ぶことが出来る。加えて、onEdit関数は、スプレッドシートどんなセルにも書き込むことが出来る。 onOpenとonInstall関数はユーザーがそれを意識することなく実行される。一般的にこれらの関数は、メニューアイテムとメニューをインストールしたり、初期状態でスプレッドシートのデーター、ヘッダーを入力しておく為にのみ使用する。 Google Docs は複数のGoogleアカウントを同時に同じブラウザ上で使うことはサポートしていない。それはパブリックなGmailアカウントでもGoogle Appsアカウントでも同じである。次のことをやると、問題が起きるかもしれない。
このような状態で、現在のアカウントからログアウトして、Cookieを消去して、ブラウザを再起動する。するとGoogle Docsは再ログインすると次のように振る舞う。
|