MariaDB Server 10.3 新機能 : Invisible Columns

本記事は MariaDB Corporation より寄稿された記事となります
目次

はじめに

MariaDB Server 10.3 から Invisible Columns という新機能が追加されています。今回はこの新機能に関してご説明したいと思います。

Invisible Columns

この新機能では CREATE TABLE / ALTER TABLE 文にて,カラムに INVISIBLE 属性を与えられます。

SELECT * FROM などでワイルドカードを用いてクエリを実行した際に,クエリ結果には Invisible Column は表示されず,取扱いに留意する必要のある個人情報などをよりセキュアに扱うことが可能になります。

また,INSERT 文において明示的にカラム名を指定していない限り、値を割り当てる必要もありません。

Invisible Column は NOT NULL として宣言できますが、デフォルト値が必要です。
また,テーブル内のすべてのカラムを非表示(Invisible Column)にすることはできず,少なくとも1カラムは INVISIBLE を指定しない必要があります。

Invisible Columns のテスト

テスト環境

  • MariaDB Server 10.3.16

NOT NULL + デフォルト値 有無の挙動の違い

z カラムを NOT NULL, デフォルト値なしで指定したところエラーになりました。
これに対し,z カラムのデフォルト値を指定するとエラーは発生しなくなります。

ワイルドカードでクエリ実行

Invisible Column を明示的に指定しないでワイルドカードで SELECT 文を実行してみます。

x カラムのみのデータが結果として得られました。

明示的にカラム名を指定し,クエリ実行

これに対して,明示的に各カラム名を指定して SELECT 文を実行しますとすべてのデータが得られます。

ALTER TABLE で INVISIBLE 属性変更

ここでテーブル t の定義をあらためて確認してみます。

y, z カラムが INVISIBLE となっています。
ここで,ALTER TABLE で x カラムのみ INVISIBLE とするようテーブル定義を変更します。

正常にテーブルを変更することができました。

まとめ

MariaDB Server 10.3 から導入された Invisible Column に関して解説させて頂きました。商用DBでは以前から実装されている機能であり,同様の機能を用いたアプリケーションにおいて,商用DBから MariaDB Server への移行がより容易になるかと考えます。

 

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃オープンソースデータベースのサポート業務に従事している有資格者で構成された技術サポートチームがMariaDBに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次