none
フォームのユーザー権限について RRS feed

  • 質問

  •  お世話になります。

     

    現在C#2008でWindowsFormの販売管理システムを作っております。

     

    今回の質問はSqlserverに登録されいるユーザーID(販売管理のユーザーID)を使用して

    実行権限を割り振りたいのですが、何か参考になるサイトやアドバイスなどが

    あればお聞きしたいと思いまして書き込みをしました。

     

    実現したいものはシステムにログインするユーザーIDを使用して

    フォームの参照権限や、実行権限をそれぞれのコントロールに設定を

    行いたいのですが、尚且つユーザーごとに個別の参照権限や実行権限設定を行いたいのです。

    どのように作成してよいものかが頭に浮かんできません。

     

    初心者の質問ですけれども、どなたか考え方だけでも教えていただけると助かります。

    2008年10月8日 15:01

回答

  • 権限を管理するテーブルを用意し、ユーザー毎に権限を管理するレコードを作成するのが基本でしょう。レコードの無いユーザーは権限が全くないとみなせます。

    権限を判断するのに毎回テーブルを読むのは大変ですから、ログイン時に一度だけ読み込み、静的なクラスで管理してしまえば良いでしょう。権限を判断する場合は、その静的プロパティで判断するようにします。

     

    さて、権限の持ち方ですが、1つのレコードの最大列数は、SQL Server 2005ですと1024、SQL Server 2008ですとある条件の下に30,000(最大8,019 バイト)までです。通常はこれで足りると思いますが、SQL Server 2005で1024以上の権限を管理したい場合はバイト単位で管理するなどの工夫が必要になります。

    2008年10月8日 15:38
    モデレータ

すべての返信

  • 権限を管理するテーブルを用意し、ユーザー毎に権限を管理するレコードを作成するのが基本でしょう。レコードの無いユーザーは権限が全くないとみなせます。

    権限を判断するのに毎回テーブルを読むのは大変ですから、ログイン時に一度だけ読み込み、静的なクラスで管理してしまえば良いでしょう。権限を判断する場合は、その静的プロパティで判断するようにします。

     

    さて、権限の持ち方ですが、1つのレコードの最大列数は、SQL Server 2005ですと1024、SQL Server 2008ですとある条件の下に30,000(最大8,019 バイト)までです。通常はこれで足りると思いますが、SQL Server 2005で1024以上の権限を管理したい場合はバイト単位で管理するなどの工夫が必要になります。

    2008年10月8日 15:38
    モデレータ
  •  ご返信ありがとうございました。

     

    大変参考になる意見をありがとうございます。

    解決の糸口が見つかったような気がします。

     

    ただ、しっかりデータベースの設計をしないと大変なことになりそうですね。。。

     

    しばらく設計をしてみます。何かわからないことがあったらまた質問を

    させていただきます。

     

    ありがとうございました。

     

    2008年10月10日 1:06