C# アプリと SQL Server 2005 でデータベースにデータを追加できるユーザーのアクセス許可を維持するための良い方法を探しています。
これを明確にするために説明する必要があります。それでは、これの例を見てみましょう:
私には と の 2 人のユーザーがいBob
てJim
、どちらも SQL パーミッションに追加されているため、データベースへの書き込みアクセス権があります。現在、すべてのアクセスはドメイン ユーザー アカウントに基づいています。他のすべてのユーザーには、読み取りアクセスのみがあります。
現在、次のようなテーブルがいくつかあります。
- ユーザー
- ユーザー権限
- 書籍
- 書籍出版社
したがってUserPermissions
、Users と BookPublishers のリストが含まれます。たとえば、 にはBob
の本を追加する権限があり、 には の本をMS Press
追加Jim
する権限がありO'Reilly
ます。
次に、この情報を確認し、追加できるものを制限する必要があります。
それでJim
、コマンドラインから私のアプリケーションを使用し、彼は次のようなものを書いているとしましょう:
Addbook.exe "C# 3.0 in a Nutshell" "O'Reilly"
ツールは先に進み、本を book テーブルに追加する必要があります。
今Bob
、同じコマンドを試してみると、彼は によって書籍を追加する権限がないため、ツールはエラーになるはずO'Reilly
です。
今、私はいくつかのことを行う方法を知る必要があります。
- ユーザーが最初に SQL Server への書き込み権限を持っていることを確認する
books
ユーザーが特定のパブリッシャーによって追加するための書き込み権限を持っていることを確認します- また、ツールが実際にデータを追加しようとする前に、上記が正しいことを確認する必要があります。つまり、ツールが続行する前に、まず確認のフィードバックが必要です。
今は、ユーザーが悪意のあるデータを挿入することを 100% 心配しているわけではありませんが、それを止めればいいのですが、これは内部ツールであり、ユーザーを信頼できると思います... (おそらく)
いずれにせよ、どこから始めればよいかわかりません。私の SQL スキルは非常に不足しています。
Akk、最後にもう 1 つ、ストア プロシージャを使用してデータを追加したくありません。