サイトアイコン A1 Style

[MySQL] データベースにリンクするとき注意したいこと

ODBCを利用すれば、MySQLのデータベースにAccessからリンクできます。
また、Accessからできることは、リンクに使用したMySQLアカウントで決まります。

次の記事では、更新権限を持つ管理者アカウントを使用しています。
そのため、Accessから、誤ってデータを壊すリスクがあります。

テーブルの参照だけでよければ、SELECT権限のみのアカウントを使用しましょう。
そうすれば、誤って値を上書きしてしまう心配がありません。

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

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

コマンドプロンプトが表示されたら、管理者アカウントでログインします。
パスワードを聞かれるので、管理者アカウントのパスワードを入力してください。

mysql -u root -p

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

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

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

use mysql;

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

select host, user from user;

「root」以外に、Bitnami Redmineをインストールした時に作成された「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 ‘ユーザー名’@’ホスト名’;

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

grant select on bitnami_redmine.* to ‘pmo’;

付与した権限の確認

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

show grants for ‘ユーザー名’;

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

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

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

モバイルバージョンを終了