質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

1回答

613閲覧

c# データソース構成ウィザードで、「いいえ、重要情報を・・」選んだ場合のパスワード

d_neko

総合スコア108

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2020/01/20 02:48

編集2020/01/20 05:30

データソース構成ウィザードで、「はい、重要情報をも文字列に含めます。」
を選んだ場合、パスワードも含まれます。

「いいえ」を選んだ場合、どうやってパスワードを指定するのでしょうか。

【追記】
いままで、new SqlConnection();とかでデータベースに接続していました。
今回、初めてデータソース構成ウィザードを使ってみました。
確かに、今まで苦労していたDataGridViewも簡単に表示できます。
しかし、configファイルに、接続の情報でパスワードまで表示されます。
これって、セキュリティ的にどうなのでしょうか。
そこで、ウィザードで「いいえ」にしました。
すると、接続の情報にパスワードは表示されませんが、
そのパスワードの設定の仕方がわかりません。

【やってみたこと】
Settings.settings の
<Setting Name="XXXConnectionString" Type="(Connection string)" Scope="Application">

<Setting Name="XXXConnectionString" Type="(Connection string)" Scope="User">
に変更する。
Properties.Settings.Default.XXXConnectionString = 接続文字列

ネットで探してやってみました。
なんかつながったようですが、こんな面倒なことをしないといけないのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/01/20 05:07

何を作っているか(Windows Forms?)と開発環境(OS, Visual Studio, DB Server のバージョンなど)を書きましょう。もっと詳細にどういう操作をしているのかを書きましょう。
guest

回答1

0

Windows 認証を使うか、それがダメなら暗号化するぐらいしか方法はないと思います。

今まで id, password をハードコーディングしていたようですが、それでキュリティ的に万全ということはないです。ハードコーディングしても、ユーザーが読もうと思えば読めますから、.config ファイルに格納するのと大差はないと思います。

暗号化については、

encrypt connection string in app.config c#

などをキーワードにググってみてください。

投稿2020/01/20 06:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d_neko

2020/01/20 07:23

いつもありがとうございます。 保存するのではなく、テキストボックスに入力するように考えていました。 普通はこんなことしないのでしょうか。 私が考えたことは、 たとえば、ユーザーによって権限があるとします。 制限のある人は、プログラムからは情報を見られません。 でも接続情報があれば、端末たたいてアクセスし情報が見られると思いました。 もし接続情報を変えることができたら、DBに接続できるユーザーを2種類(権限有・無)つくります。 そうすれば、端末たたいてのアクセスは防ぐことができると思うのですがちがうのでしょうか。
退会済みユーザー

退会済みユーザー

2020/01/20 08:50

> 保存するのではなく、テキストボックスに入力するように考えていました。普通はこんなことしないのでしょうか。 何が「普通」かは環境などによって違うでしょうし議論のあるところかもしれませんが、少なくとも自分が知る限りでは普通ではありません。 普通はアプリの接続文字列は固定です。だから、settings ファイルに「接続文字列」として保存したり、app.config に固定の接続文字列を保存したりするようになっているはずです。 > もし接続情報を変えることができたら、DBに接続できるユーザーを2種類(権限有・無)つくります。そうすれば、端末たたいてのアクセスは防ぐことができると思うのですがちがうのでしょうか。 質問者さんの考え方が違うかどうかは質問者さんが置かれた環境・状況次第だと思いますが、少なくとも接続文字列をユーザーによって変えるというのは普通ではないです。 ユーザーによって DB にアクセスできる権限を変えたいということなら、Windows 認証を使うとか、Windows Forms アプリは止めて Web アプリにしてロールで制限するとかが普通だと思います。 セキュリティや認証・承認についてもっと勉強しましょう。今の知識ではかなり危うい感じがします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問