web-dev-qa-db-ja.com

SQLServerユーザーアカウントによる同時データベース接続の制限

SQL Server 2005ユーザーアカウントを作成したいのですが、そのユーザーを制限して、データベースへの同時接続を一度に2つだけ許可します。 SQL Serverの構成を通じてこれを行う方法はありますか?

2
Mindy

ログイントリガーを試すことができます: http://technet.Microsoft.com/en-us/library/bb326598.aspx

TechNetは次のことを提案しています。

ログオントリガーを使用して、ログインアクティビティの追跡、SQL Serverへのログインの制限、特定のログインのセッション数の制限など、サーバーセッションを監査および制御できます。

彼らの最初のコード例では、ユーザーを3つの接続に制限しています(TechNetの引用)。

USE master;
GO

CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE,
    CHECK_EXPIRATION = ON;
GO

GRANT VIEW SERVER STATE TO login_test;
GO

CREATE TRIGGER connection_limit_trigger
ON ALL SERVER WITH EXECUTE AS 'login_test'
FOR LOGON
AS
BEGIN
IF ORIGINAL_LOGIN()= 'login_test' AND
    (SELECT COUNT(*) FROM sys.dm_exec_sessions
            WHERE is_user_process = 1 AND
                original_login_name = 'login_test') > 3
    ROLLBACK;
END;
8
Tim Santeford