2009-07-02 17 views
1

SQL Server Management StudioからSQL Serverへのアクセスをデータベースサーバーに限定する方法はありますか?または特定のIPアドレスに?SQL Serverはローカルサーバーへのアクセスのみを制限します

(Windowsグループ内の)ユーザーグループは、アプリケーション経由でデータベースにアクセスできますが、SQL Server Management Studioを使用してアクセスを拒否する必要がある場合があります。

私はアプリケーションロールなどに関するいくつかの記事を読んでいますが、認証されたユーザーを使用してデータベースに入る必要があります。

答えて

0

管理スタジオもクライアントにすぎないので、管理スタジオを無効にすることはあまりありません。

あなたのできるアカウントアクセスを拒否して、ssms経由で接続できないようにすることです。

あなたのアプリでは、各ユーザーは接続する独自のSQLログインを持っていますが、パスワードはそれらから非表示にする必要があります。

MS SQL 2008で
2

アプリケーション名を定義するには、ログオンイベント

CREATE TRIGGER trigger_name 
    ON ALL SERVER 
    [ WITH <logon_trigger_option> [ ,...n ] ] 
    { FOR | AFTER } LOGON 

にDLLトリガを書くことができます(2005わからない)、あなたはこの

select program_name from master.dbo.sysprocesses with (nolock) 
where spid = @@spid 

のようなステートメントを使用することができます私の場合、このクエリは 'Microsoft SQL Server Management Studio'を返す program_nameをチェックしてエラーを発生させることができます。 LOGONトリガーでエラーを発生させても何が起きるか分かりませんが、これを試すことができます。

これが期待どおりに動作しない場合、つまりユーザーがデータベースへのアクセスを拒否されない場合、少なくとも、ユーザーがMS SQLを使用してDBにアクセスしようとしているという記録をログ表に書き込むことができますあなたは何らかの管理措置を講じることができます。

ただし、この方法は、としてのみとしてください。データベースの機密データを保護するには、ユーザー、ロールおよびスキーマを使用する必要があります。一部のデータ(パスワード、クレジットカード番号)は暗号化された列に格納する必要があります。

ユーザーがODBCやネイティブ.NETクライアントをサポートするアプリケーションからAccessとExcelからデータベースに接続する可能性があることを考慮してください。ADOを介してそこに接続する小さなVBScriptを作成する場合もあります。そのため、テーブルにデータを表示するツールやアプリケーションが数多くあります。アプリケーション名によるアクセスを制限するのは良い方法ではありません。標準のセキュリティオプションを使用して制限する必要があります。