1

SQLログインで必要なサーバーの役割やデータベースの役割は次のとおりです。

  1. データの読み取り(一時テーブルを含む)
  2. データの書き込み(一時テーブルを含む)
  3. アクセスが許可されているデータベース内のSPを実行します

SQL 2000から2008に移行していますが、すべてのログインを確認しましたが、すべてsysadminとdb_ownerに設定されていることに気付きましたが、これは適切ではありません。これらのログインを使用する私たちのアプリは、私が上にリストしたことだけを実行するので、それが私が疑問に思っている理由です。db_datareaderとdb_datawriterのデータベースロールで各ログインを設定できることは知っていますが、これにはSPの実行は含まれていません。2つまたはDBで300に近いSPがあり、各SPを調べて、拡張プロパティでログイン権限を設定する必要があるのは、非常に長くて面倒です。

どんな助けでも大歓迎です!

4

3 に答える 3

1

各SPを調べて、拡張プロパティでログイン権限を設定する必要があるのは、非常に長くて面倒です。

それでも、これも最も安全です。

組み込みのロールを使用すると、データベースの多くがアプリケーションに公開されます。

于 2012-04-09T18:55:07.030 に答える
1

db_datareaderおよび/またはdb_datawriter実行権を付与できますか? これにより、アクセス権を持つデータベース内のストアド プロシージャを実行する権限がユーザーに与えられます。ビューがある場合は、選択権限も付与する必要があります。

GRANT EXECUTE TO db_datawriter
于 2012-04-09T19:07:14.260 に答える
0

私はそれに対処して権限を手動で設定するか、(私の好みで)付与したい種類の権限を持つデータベースロールを作成し、それらにログインを割り当てます。そうすれば、複数のログインに同じ権限セットが必要な場合でも、同じ役割を与えるだけです。

おまけとして、プログラマビリティ オブジェクトに何らかのプレフィックス命名規則があり、(たとえば) ログイン情報テーブルから読み取るプロシージャがすべて pAccount_ などで始まる場合GRANT、プレフィックスに基づいてロールに対して動的に s を実行できます。ルーチンの。

于 2012-04-09T19:18:18.730 に答える