0

クライアント システムに SQL Server 2008 R2 Express をインストールしています。Management Studio を開いてデータを変更するだけの人がいるという情報を入手しました。

どうすればこのような事態を防ぐことができ、彼らによって何が変更されているかをログに記録できますか?

4

2 に答える 2

4

どうすればこの出来事を止めることができますか

SQL Server のログインを変更します。ユーザーは、資格情報を持っているデータベースとサーバーにのみ接続できます。

runas認証にWindowsログインを使用している場合は、アプリケーションへのアクセスのみを許可するだけで、独自のログインを使用してデータベースを必要とするアプリケーションを実行する必要があります。

于 2012-12-24T13:08:44.057 に答える
0

私はのアイデアを得ることができませんでした。しかし、runas 私は@Martin Smithのアイデアを使用して、以下のソリューションを構築しました。

これは、ログインでアクティビティを実行しているすべての非saユーザーを無効にするために使用されます。ActiveDirectoryではテストしていません。

  1. 書き込みを拒否
  2. 読み取りを拒否
  3. データベースを拒否する
  4. 接続するSQLを拒否します。

    Create TRIGGER DisableSMSSEntry_trigger
    ON ALL SERVER  WITH EXECUTE AS 'sa'
    FOR LOGON
    
    AS
    
        BEGIN
        DECLARE @NtUserName AS NVARCHAR(100)
    
        IF ( (SELECT DISTINCT RTRIM(LTRIM(nt_user_name)) AS LogedUser  FROM sys.dm_exec_sessions WHERE is_user_process = 1 AND login_name !='sa') >0 )
        BEGIN
        SET @NtUserName= (SELECT DISTINCT RTRIM(LTRIM(nt_domain+'\'+nt_user_name)) AS LogedUser  FROM sys.dm_exec_sessions WHERE is_user_process = 1 AND login_name !='sa')
    
    
    
        DECLARE @membername  AS varchar(100),@rolename AS varchar(100)
        SET @membername=@NtUserName
        set @rolename ='DB_DenyDataWriter'
        EXEC sp_addrolemember @membername,@rolename
        set @rolename = 'DB_DenyDataReader'
        EXEC sp_addrolemember @membername,@rolename
    
        exec  (' DENY VIEW ANY DATABASE TO '+ @NtUserName )
        exec  ('DENY SQL CONNECT ' + @NtUserName )
        ROLLBACK
        END
    
    END
    
于 2012-12-28T06:02:50.853 に答える