スマートスタイル TECH BLOG

データベース&クラウド技術情報

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 への移行がより容易になるかと考えます。


執筆者情報

後藤 智(GOTO Satoru)
2017年6月よりMariaDB CorporationにてAPAC(Asia Pacific)地域におけるプリセールス業務を主に担当。現在は主に日本を担当。
この執筆者の他の記事をよむ
Return Top