AccessとMySQL(Redmine)をリンクするときの注意点

以前、Microsoft Access(以下 Access)から、MySQL(Redmine)にODBC接続する方法を紹介しました。

AccessをMySQL(Redmine)に接続する方法
ODBCドライバーを使用して、Microsoft Access(以下 Access)をMySQL(Redmine)に接続する方法を紹介します。Accessに、MySQL(Redmine)の各テーブルをデータごと取り込んだり、リンクテーブルを作成してクエリーで集計することができるようになります。

この記事では、MySQLの管理者アカウントでリンクテーブルを作成しました。

しかし、こうした更新権限を持つアカウントで作成したリンクテーブルでは、データシートビューやマクロから誤って値を書き換えて、データベースを壊す危険があります。

参照目的のリンクテーブルは、SELECT権限のみのアカウントで作成しましょう。
そうすれば、誤って値を上書きしても更新エラーになるので、壊す心配がありません。

以下に、SELECT権限のみのアカウントの作成方法を紹介します。
ぜひ参考にしてみてください。

スポンサーリンク

コマンドプロンプトからMySQLにログイン

スタートメニューから、[Bitnami Rdmine Stack]の[Bitnami Rdmine Stackを使用する]をクリックしてコマンドプロンプトを表示します。

コマンドプロンプトが表示されたら、管理者アカウントでログインします。

mysql -u root -p

パスワードを聞かれるので、管理者アカウントのパスワードを入力してください。

登録されているアカウントの一覧表示

MySQLにログインできたら、まずは、登録されているアカウントを確認してみましょう。
アカウントの情報はMySQLのデータベースにありますで、次のコマンドを入力します。

use mysql;

登録されているアカウントの一覧を表示するには、次のコマンドを入力します。

select host, user from user;

「root」以外に、Bitnami Redmine Stackをインストールした時に作成された「bitnami」というアカウントが確認できますね。

アカウントの作成

アカウントを作成するコマンドの書式は次のようになっています。

create user ‘ユーザー名’@’ホスト名’ identified by ‘パスワード’;

ホスト名を省略した場合は’%'(ワイルドカード)を指定したものとみなされます。
ユーザー名「pmo」パスワード「mypass」というアカウントを作成する場合のホスト名との組み合わせをいくつか紹介します。

任意のホストからの接続を許可する場合

create user ‘pmo’ identified by ‘mypass’;
create user ‘pmo’@’%’ identified by ‘mypass’;

社内LANのすべてのホストからの接続を許可する場合

create user ‘pmo’@’192.168.%.%’ identified by ‘mypass’;

特定のIPアドレス「192.168.1.2」からの接続のみ許可する場合

create user ‘pmo’@’mydesktop’ identified by ‘mypass’;
create user ‘pmo’@’192.168.1.2’ identified by ‘mypass’;

SELECT権限の付与

権限を付与するコマンドの書式は次の通りです。

grant 付与する権限 on データベース名.テーブル名 to ‘ユーザー名’@’ホスト名’;

先ほど作成したアカウントに、Redmineのデータベース(bitnami_redmine)へのSELECT権限を付与する場合は、次のように入力します。

grant select on bitnami_redmine.* to ‘pmo’;

付与した権限の確認

最後に付与した権限を確認しておきましょう。
アカウントに付与されている権限は、次のコマンドで確認できます。

show grants for ‘ユーザー名’;

実際に確認してみましょう。

以上で、SELECT権限のみ付与されたアカウントの作成は終了です。
「quit」を入力してログアウトしてください。

リンクテーブルを作る際、ODBCドライバーの設定画面で、管理者アカウントのかわりに、このSELECT権限のみのアカウントを入力すればOKです。