2009-03-31 14 views
1

私は、自分のasp.netアプリケーションからデータベースにアクセスするために必要な正確なアクセス権とアクセス権を、私はいつも疑問に思っています。アプリケーションは、データをテーブルに挿入、更新、および削除するストアドプロシージャを実行します。私は選択、削除、テーブル上で直接更新も行います。また、いくつかのトリガーがあります。 役立つ権限マトリックスの包括的なリストがある場合は不思議です。SQLログインのアクセス権ASP.Netアプリケーション用のデータベース

答えて

1

まあ、それはあなたがそれが:-)

最も簡単な解決策にしたいどのように複雑に依存します:ログイン/ DBユーザーを作成

  • すべてのテーブル
  • を読み取るためのdb_datareader役割を持っています
  • すべてのテーブルを書き込むには、db_datawriterロールを持つlogin/dbユーザーにしてください。

ストアドプロシージャを実行する場合sが、私たちがやったことは、このように私達のデータベースで新しいカスタムデータベースロール「db_executor」を作成します

CREATE ROLE [db_executor] AUTHORIZATION [dbo] 
GRANT EXECUTE TO [db_executor] 

、その後、我々としてもDBユーザーにこの役割を付与します。この新しいカスタムデータベースロールは、データベース内の今後格納されるすべてのprocs/funcに存在するすべての既存のおよびに対して実行権を持ちます。

これを使用すると、dbユーザーは任意のテーブルを読み書きでき、格納されているprocおよびstored funcを実行できます。

より複雑なソリューション: あなたはもちろんinidividual DBユーザおよび/またはデシベルロールに個々のテーブル、ビュー、procsの、のfuncs上の権限を付与することができます。しかし、それはかなり面倒で複雑になることがあります。

マーク

関連する問題