2016-04-07 45 views
1

SQL Serverアプリケーションロールを使用してアクセス許可を管理し、標準のログイン/ユーザーを使用し、前記ユーザーに必要なアクセス許可を与える利点は何ですか?SQL Serverアプリケーションのロールと通常のログインとユーザーの比較

  1. 接続SQL ServerへのSQL Serverログインとパスワードを使用して:

    私たちは、次のシナリオが必要なアプリケーション・ロールを使用してきました。

  2. アプリケーションロールをアクティブにするには、ロール名と別のパスワードをsp_setapproleに渡します。

ログイン/ユーザーにアプリケーションロールのアクセス許可を与えるだけでは、それがどのように優れているか、より安全かはわかりません。両方のパスワードがアプリケーションで使用可能でなければならず、ログインパスワードにアクセスできる人は、おそらく自分自身のプログラムまたはSSMSからアプリケーションロールのパスワードにアクセスし、sp_setapproleを呼び出すことができます。右?

EDIT:Ed Harperが推測しているように、アプリケーションのすべてのインスタンスは私のシナリオで同じログインを使用します。

答えて

3

それは権限ではなく、ユーザーのいる

CREATE ROLE WebUsers AUTHORIZATION dbo; 
ALTER ROLE WebUsers ADD MEMBER Tom; 
ALTER ROLE WebUsers ADD MEMBER Dick; 
ALTER ROLE WebUsers ADD MEMBER Harry; 

CREATE ROLE WebAdmins AUTHORIZATION dbo; 
ALTER ROLE WebAdmins ADD MEMBER Tom; 

役割あなたの説明から完全にはっきりとは分かりませんが、アプリケーションレベルで割り当てられたSQLログインを使用しているように聞こえます。つまり、アプリケーションのすべてのインスタンス(複数のインスタンスがあると仮定します) n /パスワード。このシナリオでは、アプリケーションロールを使用することで価値がほとんど増加しません。

私が理解しているように、アプリケーションの役割は、各ユーザーがSQL Serverで独自のログインを持つ場所(AD認証によってデータベースへのアクセスが許可されるシナリオ)で使用されることを想定しています。ユーザーに、使用するアプリケーションと同じ権限を与えます。これは、アプリケーションがADユーザーのIDでデータベースに接続し、次にsp_setapproleを使用して権限を昇格することを前提としています。私は、このアプローチが本番システムで使われているのを見たことはありません。

+0

はい、アプリのすべてのインスタンスで同じログイン/パスワードが使用されます。 – markltx

3

私はアプリケーションロール(CREATE APPLICATION ROLE)を使用したことがありません。
私は本当に私がデータベース役割を使用し、メンバーとしてユーザーを追加している

それらのポイントを見ることができない

GRANT EXEC TO WebAdmins; 

GRANT EXEC On SCHEMA::WebCode TO WebAdmins; 
関連する問題