1. 程式人生 > >“由於執行觸發器,登入名xxx的登入失敗”錯誤號17892的解決方法

“由於執行觸發器,登入名xxx的登入失敗”錯誤號17892的解決方法

在SQL Server 2012中建立了一個登入觸發器用於記錄連線到SQL Server例項的登入名和登入時間,表的結構和觸發器的T-SQL語句如下:
建立表:

CREATE TABLE logon_log(
    userName nchar(15),
    logonDate datetime);

建立登入觸發器:

CREATE TRIGGER tr_logon
ON ALL SERVER
FOR  LOGON
AS
BEGIN
        INSERT INTO logon_log   VALUES(SYSTEM_USER,SYSDATETIME());
END;

表和觸發器都建立完成之後,下一次登入到SQL Server Management Studio(SSMS)時出現下面的錯誤見下圖:

17892錯誤

出錯原因是因為執行了上面建立的登入觸發器阻止了使用者和資料庫引擎的連線,為了能夠登入到SSMS,需要將觸發器禁用或刪除。下面介紹禁用和刪除的方法。
禁用登入觸發器
登入觸發器可以有效地阻止所有使用者(包括 sysadmin 固定伺服器角色的成員)與資料庫引擎的成功連線。 在登入觸發器正在阻止連線時,sysadmin 固定伺服器角色的成員可通過使用專用管理員連線,或者通過以最小配置模式 (-f) 啟動資料庫引擎,來進行連線。 也就是以最小匹配模式來啟動資料庫引擎就可以禁用登入觸發器。要以最小模式啟動需要資料庫引擎服務啟動選項中的兩個:-f和-m。
啟動選項中-f的意義是:以最小配置啟動 SQL Server 例項。在配置值的設定(例如,過度分配記憶體)妨礙伺服器啟動時,這非常有用。在最低配置模式下啟動 SQL Server 會將 SQL Server 置於單使用者模式。
啟動選項中的-m的意義:在單使用者模式下啟動 SQL Server 例項。在單使用者模式下啟動 SQL Server 例項時,只能連線一個使用者,並且不啟動 CHECKPOINT 程序。CHECKPOINT 保證將已完成的事務定期從磁碟快取寫入資料庫裝置。(通常,在遇到需要修復的系統資料庫問題時使用此選項。)啟用 sp_configure allow updates 選項。預設情況下,將禁用 allow updates。在單使用者模式下啟動 SQL Server 可使計算機本地 Administrators 組的任何成員作為 sysadmin 固定伺服器角色的成員連線到 SQL Server 例項。
要禁用登入觸發器,就需要使用這兩個啟動選項,新增啟動選項的方法是:
開啟【SQL Server配置管理器】,選擇【SQL Server服務】,在視窗的右邊選中SQL Serverr資料庫引擎服務,右擊,在彈出選單的【啟動引數】選項卡,新增-f和-m兩個啟動選項。如下圖所示,點選【確定】,重啟SQL Server資料庫引擎服務。
新增啟動選項-f和-m


刪除登入觸發器
重啟SQL Server資料庫引擎服務後,就可以使用SSMS以單使用者模式連線到SQL Server。連線到SSMS後,就可刪除剛才建立的登入觸發器,如下圖所示。
刪除登入觸發器
刪除完成之後,記得把啟動選項-f和-m刪除,不然的話,伺服器只支援單使用者模式連線。
總結:登入觸發器阻止了使用者和資料庫引擎的連線,要連線到資料庫引擎,先禁用登入觸發器,即使用最小配置啟動 SQL Server 例項、單使用者模式連線到資料庫引擎,成功連線之後就可刪除登入觸發器。

相關推薦

由於執行觸發器登入xxx登入失敗錯誤17892解決方法

在SQL Server 2012中建立了一個登入觸發器用於記錄連線到SQL Server例項的登入名和登入時間,表的結構和觸發器的T-SQL語句如下: 建立表: CREATE TABLE logon_log( userName nchar(15)

執行 Tomcat 在 Intellij IDEA 控制檯輸出中文亂碼的解決方法

開啟 Run/Debug Configurations → Tomcat Server → 要執行的 Tomcat → Server 頁籤,在 VM options 中輸入: -Dfile.enc

Windows 7下用arp命令繫結IP和MAC地址提示“ARP 項新增失敗: 拒絕訪問”的解決方法

在Win 7版本以管理員身份執行時提示:“ARP 項新增失敗:請求的操作需要提升。”    解決辦法: CMD中輸入:netsh i  i show in  //注意兩個i之間是有空格的 然後找到“本地連線”對應的 “Idx” (我的是

jeecg : Online表單開發-程式碼生成:報“表tb_xxx不存在”錯誤資訊的解決方法

我們在使用jeecg的Online表單開發功能的時候,有可能會遇到如題所示的錯誤。此種錯誤的解決方案如下: 第一、確保專案中關於資料庫的配置是正確的。包括如下兩個檔案: (1)dbconfig.properties(檔案路徑jeecg/src/main/resources/dbconfi

執行登入觸發器(sql server 2016限制IP訪問)後登入sql server報錯: 由於執行觸發器,登入失敗已將資料庫上下文更改為master。解決方法:用cmd執行刪除登入觸發器

背景: 在cmd中執行osql命令: osql -S 【資料庫伺服器】 -E  -i  mysql.sql 其中mysql.sql內容如下: CREATE LOGIN test WITH PASSWORD = '輸入密碼' GO

sudo命令用其他身份來執行命令限制root遠端登入詳解

一,命令sudo 命令語法 sudo(選項)(引數) 命令描述 sudo命令用來以其他身份來執行命令,預設的身份為root。 使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。 命令選項 -b:

Apache Shiro會話超時登入頁面跳轉到父窗體的解決方法

問題1: 在使用Apache Shiro框架做許可權驗證時,因為我的頁面是使用iframe做了一個上左右的分層,上面上log,左側是選單,具體的內容則顯示在右側。 當我點選某選單,此時如果會話超時了,則登入頁面只會顯示到右側區域,看起來不是很友好,所以需要登入頁面顯示到整個

項目出現小紅叉上帶有 Implicit錯誤

cut lac 知識 per ons fin lan java execution Implicit super constructor Object() is undefined for default constructor. Must define an expli

由於無法驗證發行者所以WINDOWS已經阻止此軟件”的解決方法

我們 瀏覽器 由於 下一步 重新 允許 操作 運行 強制 Vista 和 Windows7 系統都很註重系統的安全性,在提高安全性的同時,也給我們某些應用帶來不便,例如需要安裝插件或證書,可能會彈出“由於無法驗證發行者,所以WINDOWS已經阻止此軟件”的相關提示,而致使無

關於 C#呼叫C庫Dll有回撥函式時執行一次回撥函式就直接掛掉 的解決方法

錯誤         直接當機,如下圖:           錯誤原因        回撥函式宣告原因,跟堆疊有關係  

在虛擬機器下執行gazebo關於vmw_ioctl_command error Invalid argument錯誤

開發環境:windows10+vmware player+ubuntu14.04+ROS indigo 執行:gazebo 前提條件:安裝gazebo: sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros

在 Jenkins 中使用 maven 打包報 package xxx does not exist 問題的解決方法

1 發現問題 今天打算使用 Jenkins 給一些舊專案打包,編譯時報以下錯誤: ... [ERROR] /var/lib/jenkins/workspace/fsti-pipe/src/main/java/com/fsti/oss/service/sy

SQLServer2008R2使用者登入失敗錯誤18456)解決方法

  SQL Server 2008 R2使用者'sa'登入失敗(錯誤18456),如下圖:     解決辦法:   1、首先用身份登入,有如下介面:   2、右鍵例項-- 屬性,選擇【安全性】,選擇身份驗證方式:   3、右鍵例項-- 【重新啟動】

“adb不是內部或外部命令也不是可執行的應用程式”錯誤原因及解決方法

用SQLite時,可能會出現這樣的錯誤。 原因可能是環境變數PATH沒有配置或配置不正確。應該把adb.exe 所在目錄加入到PATH環境變數。例如:C:\Program Files\android-sdk-windows\tools   開啟cmd,進入adb.exe 所

SQL2008.sa'登入失敗錯誤18456)解決方法

標題: 連線到伺服器------------------------------無法連線到 .\SQLEXPRESS。------------------------------其他資訊:使用者 'sa' 登入失敗。 (Microsoft SQL Server,錯誤: 184

eclipse配置虛擬tomcat執行環境不同專案配置不同tomcat埠

做開發時需要一個專案為另一個專案提供服務,此時必須同時啟動兩個專案,但是若不配置虛擬tomcat執行環境,因為端口占用問題,則另一個專案一定啟動不起來,為了解決這個問題,eclipse可以為不同專案配置不同的埠號,無需修改server.xml等配置檔案即可實現同時啟動多個專

XP不能執行aspxIIS HTTP 500 內部伺服器錯誤 伺服器無法載入應用程式 '/LM/W3SVC''/LM/W3SVC' '找不到指定的元資料

執行環境:Windows XP Sp2現象:[1] 瀏覽主機的.net指令碼時出現 "HTTP 500 - 內部伺服器錯誤"[2] 察看計算機系統事件,發現每次瀏覽.net指令碼均會出現一個警告如下:事件型別: 警告事件來源: W3SVC事件種類: 無事件 ID: 36日期:

vs2015正式版建立安卓工程報錯:值不能為空引數:path1的錯誤解決

vs2015正式版今天已釋出,好多人都像我一樣,迫不及待的嚐鮮了吧。可是這樣的結果就是網上資料少,出了什麼問題都要自己解決。 然後這就是第一個問題,當建立安卓工程的時候回提示: “值不能為空,引數名

EBS 登入時出現500 Internal Server Error的解決方法

記錄一下: 今天DBA所安裝的EBS R12.1.1應用程式無法通過系統最後的檢測階段,安裝提示說明:JSP、Login頁無法通過檢測。 (系統環境比較特殊,資料庫是安裝在實體機上,應用是安裝在虛擬機器上!) 之後DBA又重新“Retry“ 檢測之後既然通過了!再之後登入系

VS2010執行opencv的程式出現“應用程式無法正常啟動0xc000007b”的解決方法

問題描述 我用vs2013+opencv跑實驗,可以正常生成可執行檔案,但是執行的時候就出現“應用程式無法正常啟動0xc000007b”,如下圖: 原因是缺少direct X的相關元件。即使安裝過最新版本的direct X,還是會報錯。 解決方法 參考網址: 專用工具下