Web SQL Database に関する覚書

Web SQL Database とは

Web SQL Database とは、Cookie や Web Storage の用にデータをブラウザ側に保存する仕組みのひとつです。仕様書は、次の場所で公開されています。

ただし、既に事実上の廃止されており、今後実装されることはまずありえません。ですが、次のブラウザで既に実装されており、今現在(2022年)動作させることができます。

  • Chrome
  • Edge
  • Safari

※他にもChrominum系のブラウザで使用できます。
※Web SQL Database の代わりに Indexed Database API の利用が推奨されています。

備考

Web SQL Database の問題点

Web SQL Database は、事実上廃止されており、既に殆ど利用されていません。ですが、一部ブラウザでは動作を継続しています。

Web SQL Database は、データを無期限に保存します。有効期限がありません。また、一度作成されてしまうとJavaScript経由での削除ができません。これの最大の問題は、拡張機能などで自動的に古いデータを削除できないことです。ユーザーにほとんど認知されないまま、データだけが残り続けることが考えられます。

Web SQL Database を無効化する(UserScrpt)

DisableWebSQLDatabase.user.js// ==UserScript==
// @name        Disable Web SQL Database
// @description Disable the Web SQL Database (Old Web Database).
// @include     *
// @namespace   https://www.bugbugnow.net/
// @author      toshi (https://github.com/k08045kk)
// @license     MIT License | https://opensource.org/licenses/MIT
// @version     1.0
// @since       1.0 - 20220117 - 初版
// @run-at      document-start
// @grant       none
// ==/UserScript==

window.openDatabase = null;
// Note: UserScrpt の実行速度では、完全に拒否することはできません。
//       完全に拒否するためには、拡張機能で無遅延に実行する必要があります。
// Note: 拡張機能などページ以外からの Web SQL Database 使用には対応していません。

Web SQL Database を削除する

Web SQL Database のデータベースを JavaScript 経由で削除することはできません。ですが、次の方法で削除することができます。

設定から削除する

Chrome > 設定 > セキュリティとプライバシー > Cookieと他のサイトデータ > すべてのCookieとサイトデータを表示
chrome://settings/siteData

Edge > 設定 > Cookieとサイトのアクセス許可 > Cookie とサイト データの管理と削除 > すべてのCookieとサイトデータを表示する
edge://settings/siteData

データベースストレージとして表示される。削除ボタンから削除できます。

※データベースストレージは、Web SQL Database だけでなく、IndexedDB も同名で表示します。

開発ツールから削除する

Chrome > 開発ツール > Application > Storage
Edge > 開発ツール > アプリケーション > Storage

サイトデータのクリアから削除できます。

プロファイルフォルダから削除する

ブラウザのプロファイルフォルダから削除することで削除できます。

Chrome (Windows10)
C:\Users\(ユーザー名)\AppData\Local\Google\Chrome\User Data\(プロファイル名)\databases

Edge (Windows10)
C:\Users\(ユーザー名)\AppData\Local\Microsoft\Edge\User Data\(プロファイル名)\databases

※プロファイル名は、Default, Profile nが標準で使用されます。