4-1.ユーザーとロールについて知っておこう

2019年7月15日

データベース管理ソフトウェア(DBMS:DataBaseManagementSystem)には一般的にユーザーやロールといった機能が用意されています。
MySQLでもロールがバージョン8から搭載されました。
これらは何のためにあるのでしょうか?
実はユーザーとロール、権限はデータベースのセキュリティを確保するために不可欠な機能です。
この記事ではユーザー、ロールについて説明します。

目次

1.ユーザー

データベースのユーザーとはデータベースを利用するひとりひとりの利用者に作成するのではなく、データベースにアクセスする目的や制限に応じてその種類単位で作成します。

例えば、「データベースを更新できる」ユーザー、「データベース全体の参照ができる」ユーザー、「特定のテーブルのみ参照ができる」ユーザーといった具合です。
こうすることによりそれぞれのユーザーは与えられた権限の範囲内でのみしか操作ができず、思わぬ操作による事故やデータの漏洩を防ぐことが出来るのです。
また、MySQLにおいてはユーザーIDと接続するコンピュータを組み合わせて識別するため、同じユーザーIDでもパスワードや権限を個別に設定することも出来ます。
例えば、「USER01@localhost」と「USER01@10.20.1.10」はそれぞれ別の権限を持たせることができます。

もちろん@より後ろをワイルドカード(%記号)にすることで@より前が同じユーザーを同一権限にすることも可能です。(例:USER01@’%’)

スポンサードサーチ

2.ロール

ロールはMySQLのバージョン8から搭載された機能です。
ロールは権限のパターンをまとめて定義したものです。ORACLEなどは古くから持っている機能です。

ユーザーに個別に権限を割り当てた後で、全てのユーザーに権限を与えたい新しいテーブルが追加されたケースを考えてみます。
ロールを使わない場合は、全てのユーザーに追加されたテーブルのアクセス権を追加する作業が発生します。ユーザーが10ユーザーいた場合は10回の作業が必要です。
しかし、ロールを使用する場合はロールに対してテーブルのアクセス権を割り当てることでロールが割り当てられたユーザー全員に権限を設定することが出来ます。この場合は1回の作業で済みます。

このようにユーザーに割り当てたい権限をまとめて管理できるのがロールの長所です。