投稿者 ど素人  (社会人) 投稿日時 2018/5/23 11:27:39
魔界の仮面弁士さま

>ソルトやハッシュという言葉はご存知でしょうか。
言葉自体は知ってはいるのですがまだ未熟で組んだこともないので今回はしないということで進めさせてください。

>「権限」の管理方法をどのように考えるかは、一概には言えません。
>単純なフラグ管理(管理者 or 一般ユーザー、とか、読取専用 or 読書可能 or アクセス不可、とか)で済ませる場合もあれば、ロールベースのアクセス制御にする場合もありますし、もっと細かなパーミッション設定をとることもあります。このあたりの匙加減は要件次第といったところです。
管理者or一般ユーザーという感じでログイン成功後メニュー画面で検索、登録などのボタンを作り管理者でないと登録のボタンは作動しないという感じで考えています

Imports System.Data.SqlClient

Public Class LoginForm

    Private Sub OK_Click(sender As Object, e As EventArgs) Handles OK.Click

        Dim cnstr As String = "<接続文字列>"

        Dim cn = New SqlConnection(cnstr)
        cn.Open() ' 接続のオープン

        Dim sqlQuery As String = "SELECT Password, 権限 FROM Table WHERE ID = @Id.Text"
        Dim cmd As New SqlCommand(sqlQuery, cn) ' コマンドの作成

        Dim rd As SqlDataReader = cmd.ExecuteReader() ' コマンドの実行

        Dim Pass As String
        Dim Flag As String = 0

        While rd.Read() ' 1 行読み込み
            Pass = ※取得したもの
            Flag = ※取得したもの
        End While

        rd.Close()
        cn.Close() ' 接続のクローズ

        If Password.Text = Pass Then
            MessageBox.Show("ユーザー名とパスワードを受け付けました。")
            Me.Close()

        Else
            MessageBox.Show("認証できません。")
            Id.Clear()
            Password.Clear()
            Username.Focus()
        End If
    End Sub

End Class

参考を元にわかる範囲で作ってみたのですがどうでしょうか?
全体像としてはこんな感じとなるのですが、、、