2010-12-17 9 views
0

私はSQL 2005に接続している私の会社の少数の人に配布されているExcelのアプリケーションを持っています。sql 2005アクセス制御 - 許可すると接続できますがアクセスできませんか?

私は、接続文字列をエクセルで使用することから、彼ら自身のアクセスや他のツールで、SQL Serverのリソースへの接続や使用の詳細を基に、接続文字列をExcelから引き出すことができますか?

答えて

0

簡単な答えは、接続文字列とソースコードを公開すると、スマートユーザーはそれを複製する方法を見つけることになります。それを回避する方法はありません。しかし....

Excelアプリケーションでマクロコードが使用されている場合は、いつでもSQLアプリケーションロールを使用できます。接続オブジェクトを作成するコードはすぐに接続のセキュリティコンテキストを切り替えるsp_setapproleを呼び出します。ユーザーに接続文字列に何もする権利を与えないでください。アプリケーションロールへの制限付きの権利を与えます。 sp_setapproleコールを難読化する方法を見つけるだけでよいので、よりスマートなユーザーはそれを行う方法を理解しないようにすることができます。

少なくとも、Excelが使用しているユーザーアカウントには、非常に限られたオブジェクトセットに対する権限しかないことを確認してください。すべての複雑なSQLをサーバー側のビューまたはストアド・プロシージャに入れて、データベース・スキーマを明らかにしないようにします。

+0

を発生する制限読取り専用ビューを提供xcel appは欠陥テーブルを報告しています。ユーザーが自分の報告アプリをAccessや他の場所に移動するのを防ぐために、テーブルに接続して、気分がどのように変化したのかを知りたいと思っています。 – kacalapy

+0

成功した場合、Excelファイルをデータソースとして使用するアクセスレポートを作成するだけで、依然として不具合が発生します。あなたの従業員が会社の方針に従うことを信じることができない場合は、あきらめてください。 – Bill

0

ソースがある場合、ユーザーから資格情報を非表示にすることはできません。例えば、読み取り専用の権利とによって使用される唯一のオブジェクトへのアクセス(限られた権限でDBにアクセスできるデータベースロールにこれらのユーザーを割り当て

  • :データベースの悪用を防ぐために

    可能な解決策アプリケーション)

  • が問題でEということである行リターンの数...(TOP(Xを選択))
  • 更新のみストアドプロシージャを介して
関連する問題