1. 程式人生 > >SQL Server 如果本機管理者與 sa 帳戶都無法登入怎麼辦?

SQL Server 如果本機管理者與 sa 帳戶都無法登入怎麼辦?

以下是帳戶被鎖定的畫面: (注意: 要輸入正確的帳號密碼才會顯示帳號已被鎖定的訊息)

這個解法有好多個面向可以探討,而且不同版本的 SQL Server 也會有不同的處理方法:

※ SQL Server 2005 的解法

如果你的 SQL Server Agent 可以啟動的話,那問題就會簡單很多,你只要把要登入的帳號加入到 SQLServer2005 的 SQLAgentUser 群組內,就有 sysadmin 許可權可登入了,如上圖所示,就是到 本機使用者和群組 新增授權的帳戶到 SQL2008R2\SQLServer2005SQLAgentUser$SQL2008R2$SQL2005 即可。

登入後,修改 sa 帳戶,將 強制執行密碼原則

 (Enforce password policy) 這個勾選專案拿掉即可,這個設定是讓 sa 帳戶立即取消「鎖定狀態」或變更密碼,就可以利用 sa 來登入了:

或者可以輸入以下 T-SQL 執行:

USE [master]
GO
ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master], 
    DEFAULT_LANGUAGE=[us_english], 
    CHECK_EXPIRATION=OFF, 
    CHECK_POLICY=OFF
GO

這裡值得特別一提的就是 強制執行密碼原則 (Enforce password policy

),當勾選的時候,該 SQL Server 帳戶就會使用本機安全性原則的「帳戶鎖定原則」去限制帳戶登入的次數與鎖定的時間,如下圖所示:

所以,就算你的 sa 帳戶被鎖定,其實你可以慢慢等 15 分鐘,該帳號就可以重新嘗試登入了!(當然,如果連密碼都忘記的話,那就用上述的解法吧!)

※ SQL Server 2008 / SQL Server 2008 R2 的解法

由於 SQL Server 2008 的安全性相較於之前版本都來的嚴謹,他是用服務群組的概念來授予 SQL Agent 許可權 (服務群組無法透過 GUI 介面新增使用者),因此無法透過上述 SQL Server 2005 的方式來跳過驗證,相對的解決方法也困難許多。(單純密碼打錯而被鎖定者除外,因為你只要等 15 分鐘就可以了)

如果真的連密碼都忘記,可以參考以下辦法:

2. 找到舊有的 master 資料庫備份資料,並還原到你記得密碼的那個資料庫版本。

3. 讓 SQL Server 進入 單一使用者模式 (single-user mode),即可透過任意「本機管理者」登入資料庫!

以下是啟用單一使用者模式的方法:

在 進階 (Advanced) 頁籤的 啟動引數 (Startup Parameters) 欄位的最前面加上 -m; 並按下套用然後重新啟動服務:

啟動時請注意要先將 SQL Server Agent 服務給停止,否則因為 單一使用者模式 的關係,只要 SQL Server Agent 服務成功登入 SQL Server 你就無法再進入資料庫作維護了:

最後開啟 Management Studio (ssms) 後新增查詢,並執行以下 T-SQL 語法即可將本機 Administrator 管理者加入到 master 資料庫中,之後再修改啟動引數,將 -m; 移除即可讓 SQL Server 正常登入了。

USE [master]
GO
CREATE LOGIN [BUILTIN\Administrators]
FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember 
    @loginame = N'BUILTIN\Administrators', 
    @rolename = N'sysadmin'
GO

也是因為 單一使用者模式 的關係,在開啟 Management Studio 之後請不要試著先連線資料庫再新增查詢,而是直接新增查詢再登入資料庫!如果先連線資料庫的話,這個「單一使用者」就被你用掉了,所以會讓你無法再執行上述 T-SQL 語法,請參考以下步驟執行:

先執行新增查詢

這時才進行登入

這時才能夠執行 T-SQL

相關推薦

SQL Server 如果管理者 sa 無法登入怎麼辦?

以下是帳戶被鎖定的畫面: (注意: 要輸入正確的帳號密碼才會顯示帳號已被鎖定的訊息) 這個解法有好多個面向可以探討,而且不同版本的 SQL Server 也會有不同的處理方法: ※ SQL Server 2005 的解法 如果你的 SQL Server Ag

部署SQL Server Analysis Service (分析服務): 名稱安全性識別碼無法對應

     之前建立的SQL Server的分析服務的工程,未發生任何異常。但是最近對其中的內容做了一些修改,再次部署的時候,總是提示:賬戶名稱與安全性識別碼無法對應。      首先以為是賬號許可權不足,檢查之後發現沒有問題。      接下來以為是啟動Analysis S

SQL Server 2008數據備份還原的原理是什麽?

減少 備份類型 目標 大量 t-sql語句 不同 不能 -i 情況 為什麽SqlServer有完整備份、差異備份和事務日誌備份三種備份方式,以及為什麽數據庫又有簡單模式、完整模式和大容量日誌模式這三種恢復模式。本文內容適用於2005以上所有版本的SqlServer數據庫。

SQL server數據庫安裝表的基本使用

col 技術 gem -o x64 log sql shadow png **** SQL server 安裝與基礎使用**** 一.安裝SQL Server 2008 R2企業版(64位)x64前的準備 二、安裝S

SQL SERVER 如果判斷text類型數據不為空

nbsp microsoft from .data 字段 設置 但是 where mage 一個字段Remark的數據類型設置先設置為varcharr(255),後來考慮到擴展性需要將其定義為TEXT類型,但是SQL 語句報錯。 SQL 語句: SELE

Sql Server 數據類型 C# 數據類型對照

timestamp nvarchar fff 驗證類型 fan CI fse datetime size Sql ServerC#簡寫 bigint System.Int64 long tinyint System.Byte b

SQL Server系統表sysobjects介紹使用

def 表函數 使用 lsp all serve lin con 描述   關於SQL Server數據庫的一切信息都保存在它的系統表格裏。我懷疑你是否花過比較多的時間來檢查系統表格,因為你總是忙於用戶表格。但是,你可能需要偶爾做一點不同尋常的事,例如數據庫所有的觸發器。

SQL server 2008資料庫的備份還原

一、SQL資料庫的備份: 1、依次開啟 開始選單 → 程式 → Microsoft SQL Server 2008 → SQL Server Management Studio → 資料庫:Dsideal_school_db既是我們需要備份的學籍資料庫 圖(1)

SQL Server 建立連線時出現網路相關的或特定於例項的錯誤,錯誤編號2等

在網上找了一種方法,成功解決了問題,這是原作者文章的連結http://blog.itpub.net/27026306/viewspace-769004/ 開啟SQL Server 2008 的 SQL Server Management Studio,輸入sa的密碼發現,無法登陸資料庫?提示以下錯誤:

SQL Server 建立連線時出現網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器 在 SQL Server 建立連線時出現網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。

在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。   1.開啟sqlserver 管理配置器 2.點選sqlExpress的協議,我們要啟動所有狀態。 3.選擇TCP/IP,點選右鍵,選擇屬性,我們

ms SQL server資料庫備份、壓縮SQL資料庫資料處理的方法

ms SQL server資料庫備份、壓縮與SQL資料庫資料處理的方法 一、備份資料庫 1、開啟SQL企業管理器,在控制檯根目錄中依次點開Microsoft SQL Server 2、SQL Server組-->雙擊開啟你的伺服器-->雙擊開啟資料庫目錄 3、選擇你的資料庫名稱(如論

SQL連線問題:在 SQL Server 建立連線時出現網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線。

在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線。 (provider: 命名管道

SQL Server中Union, Union AllTOP關鍵字同時使用的問題

SQL Server 2008中因專案需要,用一條SQL語順篩選出兩個同構表中的前4條符合條件的記錄 首先想到了Union All對兩個表聯合查詢,但查出來結果怎麼做到只取4條呢? 走了不少彎路,最後發現挺簡單的,如下: SELECT TOP 4 * FROM (SELE

Error:System.Data.SqlClient.SqlException: 在 SQL Server 建立連線時出現網路相關的或特定於例項的錯誤,請檢查遠端連線是否開啟。解決方法

  Error資訊: System.Data.SqlClient.SqlException: 在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線  (pr

windows10(VirtualBox中CentOS7(虛擬機器)互相訪問總結

先把我這裡的環境說下: 本機(windows10),釋出了一個tomcat服務:http://192.168.0.106:8080/axis/services/VPMService?wsdl 如下圖:服務能正常訪問 在VirtualBox中的CentOS7中有兩個賬戶,其

SQL server檢視的介紹,建立使用

檢視檢視是一種虛擬表,來自一個或者多個表的行或者列,檢視並不是資料庫中儲存的資料值,可以簡單的理解檢視就是封裝了一段查詢語句,呼叫該檢視就得到查詢語句查詢出來的臨時表.---------------------------------------建立檢視的兩種方式開啟需要建

sql server 2005中表的資料excel互相匯入匯出的方法

1、將EXECEL匯入到SQLSERVER2005資料庫方法示例: insert into dbo.tbpointconfig(pointname,punit,pmax,pmin,pvalue,generatorid,pdate,cdbh)SELECT 測點名稱,單位

解決sqlserver2008在 SQL Server 建立連線時出現網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQ

無法連線到 (local)。 ------------------------------ 其他資訊: 在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線。

SQL Server 建立連線時出現網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證例項名稱是否正確並且 SQL Server 已配置為允許遠端連線。 (provider: 命名管

今早開機發現,開啟SQL Server 2008 的 SQL Server Management Studio,輸入sa的密碼發現,無法登陸資料庫?提示以下錯誤: “在與 SQL Server 建立連線時出現與網路相關的或特定於例項的錯誤。未找到或無法訪問伺服器。請驗證

SQL Server 2014 windows身份驗證和sa登入失敗,且忘記密碼的解決辦法

【1】 停止SQL Server 服務 和 SQL Server Agent 服務【2】 以管理員身份開啟命令列,單使用者模式啟動服務。(在單使用者模式下啟動 SQL Server 可使計算機本地 Administrators 組的任何成員作為 sysadmin 固定伺服器角