為了避免開發人員不小心異動了我在伺服器上面做的一些Replication設定,因此我的SQL Server有做一些簡單的權限控管。但是開發人員偶爾也會需要使用SQL Server  Profiler 處理程式的 debug。但使用 profiler 工具需要sysadmin 的權限,所以我又開了 apdebug 帳號讓開發人員自由使用。心想反正只是開發環境而已,大家平常應該會很規矩地只在使用 profiler 時使用 apdebug 的帳號。但就是有人偷懶,沒有換帳號直接使用 apdebug 登入開發環境,不小心把我的 Replication 搞掛了 :(

所以不得已,只好又寫了一個程式避免有類似的狀況發生。

Create Trigger ForDebug on all Server
For Logon
AS
IF Suser_Sname()='ApDebug'  AND
   app_name() not like '%profiler%'
Rollback

使用 sysadmin 伺服器角色的帳號執行成功之後,就會在伺服器物件下的觸發程序看到建立的資料庫物件(如下圖所示)。

 

image

當前端有人使用apdug登入時,若不是 SQL Server Profiler 工具而是 Management Studio 工具就會拒絕登入,並出現如下圖的錯誤訊息。

image

arrow
arrow
    全站熱搜

    小草 發表在 痞客邦 留言(0) 人氣()