情報応用演習Ⅰ(2024)

【T2d】Npgsqlを用いたデータベースへのアクセス(2/6)

プロジェクトタイプC#コンソールアプリ※
プロジェクト名T2d
ソリューション名PIT2
ターゲットフレームワーク.NET 8.0(長期的なサポート)
最上位レベルのステートメントを使用しない使用する(チェックオフ)

※ 「コンソールアプリ(.NET Framework)」ではないので注意せよ!

2d-2. 接続ユーザーの準備

前節の説明の通り,C#プログラムでPostgreSQLと通信を行うには,PostgreSQLのC#用データベースドライバーである Npgsqlを自分の作成するプログラムに組み込む必要がある. PostgreSQLとの具体的な通信はこのライブラリが担い,C#プログラム自身はNpgsqlに含まれる クラスやメソッドを通じてPostgreSQLから/へのデータの読み書きを行うことになる(_).

C#プログラムとNpgsqlとPostgreSQLの関係

また,PostgreSQLをはじめとして多くのRDBMSでは,接続時に認証を必要とする(_).

NpgsqlとPostgreSQLの間の接続

このためPostgreSQL側で,あらかじめ接続に使用するユーザーの登録をしておく必要がある. 今回は_のようなユーザーを登録して使用することにする.

接続のためのユーザー情報
項目
ユーザー名hr_user
パスワードn1z3Lo9AQap3
管理対象のDB名SampleDB_hr

このための設定は pgAdmin で行う.pgAdminを起動し,「Servers」→「PostgreSQL 16」→「Databases」に表示される データベースの一覧から「SampleDB_hr」を右クリックし「Query Tool」をクリックする(_).

SQL文の実行

すると図2d-3-1に示す画面が開く.これは対象のデータベースに対してSQL文を実行することができる画面である. ここに_に示すSQL文を入力してをクリックする. 緑色の「Query returned successfully in xxx msec.」というメッセージが画面右下に表示されれば成功である(図2d-5-3).

ユーザー作成のためのSQL文
1
2
3
CREATE ROLE "hr_user" WITH NOSUPERUSER LOGIN PASSWORD 'n1z3Lo9AQap3';
GRANT ALL ON DATABASE "SampleDB_hr" TO hr_user;      -- ※
GRANT ALL ON ALL TABLES IN SCHEMA public TO hr_user; -- ※

1


  1. ※ 今回はこれら後段の2行のコマンドも必要であるが,データベースの作成の仕方によってはこれらの文は必要ない.今回はあらかじめ管理者ユーザー(postgres)でデータベースを作成しており,SampleDB_hrおよびSampleDB_shopの所有権はすべてpostgresユーザーが有しているため,新しく作成したユーザーに対してこれらのデータベースに対して全操作権限を付与する必要があった. ↩︎

Last updated on 2024-04-26
Published on 2024-04-26

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.