2010-12-06 14 views
0

私たちの顧客の1人がデータベース内のデータを直接変更しているという問題があります。ユーザーがアプリケーションデータベースにアクセスするのを防ぐ

私たちはAPIを持っているので、顧客はこれを使用することをお勧めします。私たちは、手動でデータを変更する場合、解決策をサポートしないと脅しました。

私の質問は、私たちのアプリケーション以外からのデータベースへのアクセスを防ぐことができる技術的な方法はありますか?

これはSQL Serverデータベースであり、お客様がサーバーを所有してDBサーバーを管理しているため、基本的にSAをロックアウトする方法が必要です。

ありがとうございました

+0

明確化:それは直接データベースにアクセスしているユーザーをシステム管理者です。彼らはテーブルのビジネスデータを編集しています。私たちが検討しているオプションの1つは、すべてのテーブルにトリガを置くことですが、これらは複雑なビジネスルールやワークフローを複製する必要があります。 – stevenrcfox

+0

ライセンスデータのコメントに基づいて、データベース上の機密データを暗号化し、アプリケーション内のデータを復号化します。 –

答えて

3

まず物事...あなたがすることはできません:

データベースレベルでのdb_owner/DBOをロックアウトサーバレベルですべてのSAまたはシステム管理者の権限をロックアウト今すぐデータを直接アクセスしている人物を確認しましたか?

  • あなたは、エンドユーザーがデータを変更している意味場合は、セキュリティ上の問題を持っている:彼らは唯一のAPIを使用することができ、さらには接続できないようにする必要があり。

  • sysadminレベルのユーザー(DBAまたはBOFHタイプなど)を意味する場合、正当な理由がある可能性があります。 APIがすべての操作をサポートしていますか? DBAとして、私は今ひどく書かれたサードパーティのアプリで開いているテーブルの手術をしなければならなかったし、エンドユーザーがシステム管理者レベルの権限を持っている場合は、

  • は、その後、クライアント企業

内政治の問題を持っています編集:

彼らの質問にOPによるコメントの後...システム管理者ユーザーはトリガーを無効にすることができます...

+0

質問に説明文を追加しました。私はロックアウトしたいシステム管理者です。私たちの主な関心事はデータの完全性ですが、お客様の1人が(ユーザー数や他のドメイン特有の問題に基づいて)ライセンスデータを手伝っていると信じる理由もあります。私たちには、エクスポートの機能があるため、ベンダーのロックインに関する問題はありません。 – stevenrcfox

+0

システム管理者は、クライアントアプリケーションで論理/業務の整合性チェックを行うのではなく、データベース自体を警戒させたいという大きな示唆を与えていますか? – Tim

+1

@Tim私たちのシステム管理者ではなく、お客様のシステム管理者です。私たちのアプリはストアドプロシージャと制約を利用しています。システム管理者は、ストアドプロシージャを実行していないテーブルのデータを変更しています。上記のコメント通り、私たちはどこにでもトリガを置くことができますが、@ gbnの編集に従って、それは役に立たないでしょう.2:データベースとアプリケーションの間にはどこに線を引いていますか? – stevenrcfox

1

あなたはAPI公開していますか?認証なしでデータを変更できるのではありません。私はいくつかの内部認証メカニズムの使用をお勧めします。入ってくるクエリが実行するのが安全かどうかを確認する基本的なチャレンジ/レスポンスプロトコルです。

関連する問題