1. 程式人生 > >在 SA 和 Windows 等賬戶都被禁用的情況下如何登入?

在 SA 和 Windows 等賬戶都被禁用的情況下如何登入?

所有 sysadmin 賬戶都不可用,或者忘記了或者被禁用的導致無法登入,這個偶爾還是能見到的。

這個確實讓人著急, 為了這麼點事重灌SQL Server 還是不值。

那如何處理呢?

下面以 Win10+SQL Server2017 為例來示範操作。

------------------------------------------------ 分割線 ------------------------------------------------

先模擬,禁用所有賬戶:

注:影響比較大,請不要在生產環境操作。想直接看解決方案的請跳過這一步。

--禁用所有賬戶
DECLARE @sql NVARCHAR(MAX)
SELECT @sql=ISNULL(@sql,'')+'alter login ['+s.name+'] disable;
' FROM sys.syslogins AS s WHERE s.name NOT LIKE '##%##'
PRINT @sql
EXEC (@sql)

做完這一步, 這個SQL Server暫時算是廢了, 關閉當前的查詢視窗, 再也無法連線了。

------------------------------------------------ 分割線 ------------------------------------------------

解決方案:

一、建立一個新的Windows 使用者帳戶, 名稱為 dba, 型別為管理員。這一步就不贅述了。

二、以 dba 登入Windows;

三、進入服務視窗, 停止 SQL Server2017 服務;


四、找到命令提示符,右鍵"以管理員身份執行" 。


五、net start 服務名 /m  , 進入單使用者模式。服務名可以在服務上右鍵獲取, 如下圖:

六、sqlcmd -S  .\例項名 -A, 以DAC方式進入sqlcmd。例項名也可以在服務上右鍵獲取, 如下圖:

七、執行SQL, 建立一個新的 sysadmin 許可權的SQL賬戶, 指令碼如下:

USE [master]
GO
CREATE LOGIN [admin] WITH PASSWORD=N'admin', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [admin]
GO


八、重啟SQL Server服務(此時就不再要是單使用者了).

到此為止,你可以用SQL Server的新賬戶admin登入進入了。進去之後,將其它賬戶改為啟用即可。

當然, 整個過程中, 最為關鍵的幾點:

五、單使用者啟動;

六、DAC進入sqlcmd.

至於其它,你可以靈活處理,比如已經有管理使用者,沒有禁用過但也沒有許可權也可以不新建Windows帳戶;如果你想將  sa 改為啟用,再將sa密碼改一下而不建立 admin 的 SQL賬戶也行。

-------------------------------------

後記:

某次用這個方法能建立新SQL賬號,但新SQL賬號 admin 卻登入不了, 後面近不得已,新建立 Windows賬號, 並改為 sysadmin .

USE [master]
GO
CREATE LOGIN [WIN-xxx\userName] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember @loginame = N'WIN-xxx\userName', @rolename = N'sysadmin'
GO

用Windows賬號登入能連線了, 再看 admin , 無論怎麼修改也登入不了, 真奇怪。再看錯誤日誌, 


不知誰居然沒啟用這個, 圖形介面當然簡單:


對應指令碼:

USE [master]
GO
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 2
GO

也就是說, 上面的方法如果不成功, 在第 7 步的指令碼中增加這個啟用 SQL 賬號的指令碼即可。

注:身份驗證修改後必須重啟服務才能生效。

參考:

相關推薦

SA Windows 賬戶禁用情況如何登入

所有 sysadmin 賬戶都不可用,或者忘記了或者被禁用的導致無法登入,這個偶爾還是能見到的。這個確實讓人著急, 為了這麼點事重灌SQL Server 還是不值。那如何處理呢?下面以 Win10+SQL Server2017 為例來示範操作。----------------

sqlserver修改sa密碼(在windows登陸沒有權限的情況

can use blog alter stop admin 成功 使用命令 with 對於windows用戶沒有權限執行alter login sa enable的情況下,采用如下方法可以成功修改sa密碼登陸。 1. 用Run as a administrato

關於gettersetter方法生成的情況卻出現了No such method這樣的問題

今天在機房用學校的電腦,將自己在筆記本上未完成的作業,大致又寫了一遍但是出現了一個奇怪的錯誤, Method "setEmployeeDeptId" failed for object [email protected] [java.lang.NoSuchMeth

HBase在splitmajor compact的一些非通常情況的觸發條件

原 HBase在split和major compact的一些非通常情況下的觸發條件 2013年03月10日 17:51:25 楊步濤的部落格 閱讀數:9914更多 所屬專欄: HBase儲存 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 http

在不使用webpack打包構建工具的情況=>使用babel-cli快速地將ES6轉化為ES5語法

1. 新建專案目錄,在根目錄下建立兩個資料夾(src和dist)和主檔案(index.html): src:編寫的 ES6 語法的 JS 檔案存放的目錄,如 es6.js; dist:用 babel 將 ES6 語法編譯為 ES5 語法後存放的目錄,如 es5.js;

恐怖啊,MD5已經真實情況破解了

http://www.win.tue.nl/hashclash/SoftIntCodeSign/HelloWorld-colliding.exe http://www.win.tue.nl/hashclash/SoftI

android 打包上線忘記password alias在有 簽名檔案的情況如何找回

哈哈,這種需求我也是醉了。 今天有個搞ios的朋友(以前公司同事,現在是Leader)問我他們公司安卓要做版本升級,然後簽名檔案有但是password 和 alias忘記了,總不能重新搞個簽名檔案吧,密碼試了一大堆無濟於事,我聽後特麼感覺想笑,

關於在開發板電腦用網線直接連線的情況如何ping通,nfs掛載

1.關於在開發板和電腦用網線直接連線的情況下,開發板、ubuntu虛擬系統、電腦主機如何ping通 ①.虛擬機器的ubuntu網路連線必須是橋接模式,ubuntu系統啟動之前電腦主機必須要有網路,否則會提示 啟動ubuntu系統,啟動後用網線直接連線電腦

配置自己的虛擬域名_(方便測試開發_在沒有域名的情況)

1.需要域名的地方 1.1生成數字證書,和祕鑰 要根據域名新增信任的時候 1.2做sso cas單點登入的時候需要域名訪問 2.怎麼生成虛擬域名 2.1 我們找到c:\windows\system32

同步非同步有何異同,在什麼情況分別使用他們?

如果資料將線上程間共享.例如正在寫的資料以後可能被另一個執行緒讀到,或者正在讀的資料可能已經被另一個執行緒寫過了,那麼這些資料就是共享資料,必須進行同步存取.     當應用程式在物件上呼叫了一個需要花費很長時間來執行的方法,並且不希望讓程式等待方法的返回時,就應該使用非同步

【轉】SQL2008的sa賬戶禁用,其他賬戶無法連線的解決方法

百度知道上搜來的,不過答案好像也是CSDN的。但我沒有找到地址,先貼出來方法備忘,侵刪。 或者你還有其它的sysadmin許可權的賬號,你可以用此賬號登入,重置SA密碼。 但是在以下情況下,怎麼辦呢? 1. SA密碼丟失或者SA賬號被禁用。 2. 你進行了一些安全操作,把B

hao643.com劫持(IEChrome修改快捷方式跳轉到hao123.com)

cnblogs path eat ams app .get style 選型 des 最近下載了某個軟件,安裝後IE和Chrome的Startup Page均被重定向到hao123.com。查看IE和Chrome的配置選型,沒發現問題。後來發現是快捷方式後邊多了一串字符串

如何顯示在Exchange2010/2016中禁用掉的郵箱賬戶

exchange相關問題 近期在Exchange2010中遇到郵箱賬戶被誤操作而禁用了,結果在控制臺中怎麽也翻不出來了。這種情況是因為被禁用的賬戶還在受保護的時間內(默認30天),也就是說在這個周期內是可以與其賬號重新恢復鏈接的。(需要對數據庫實例挨個進行配置)在Exchange Server

Windows安裝的XAMPP如何設置ApacheMySQL服務開機自啟動

Windows xampp MySQL Apache 自啟動 在Windows上安裝完Xampp,每次都要到Xampp控制臺啟動和關閉Apache和MySQL等服務,但可以通過設置讓Apache等服務安裝為系統服務,從而實現服務開機自啟動。1、在Xampp安裝目錄下找到xampp-cont

Windows Linux 80 埠佔用,如何檢視解決

有些問題遇到因為命令不總用,所以記錄一下: Windows 80埠被佔用: https://blog.csdn.net/q343509740/article/details/80821409 1.開啟cmd命令視窗 輸入如下指令檢視所有埠和PID netstat –ano 2.找到對應的

windows 系統找不到kernel32.libwindows.h問題

windows 系統下找不到kernel32.lib和windows.h等問題 因為專案中一個硬體驅動只支援windows7,所以找了一個硬碟重灌系統(window 7 64位官方純淨版)。裝完之後又安裝了VS2013,新建專案直接報錯,找不到kernel32.

Wi-Fi 爆重大安全漏洞,Android、iOS、Windows 所有無線裝置不安全了

作者 | 蘇宓 移動裝置橫行的時代,Wi-Fi 已成為現代人生活的必備要素之一。但近日有電腦保安專家發現,Wi-Fi 裝置的安全協議存在漏洞,如今用於保護 Wi-Fi 網路安全的保護機制已經被黑客攻破,蘋果、微軟、谷歌、Nest 等無線裝置紛紛不再安全

-1-5 java 多執行緒 概念 程序 執行緒區別聯絡 java建立執行緒方式 執行緒組 執行緒池概念 執行緒安全 同步 同步程式碼塊 Lock鎖 sleep()wait()方法的區別 為什麼wait(),notify(),notifyAll()方法定義在O

 本文關鍵詞: java 多執行緒 概念 程序 執行緒區別聯絡 java建立執行緒方式 執行緒組 執行緒池概念 執行緒安全 同步 同步程式碼塊 Lock鎖  sleep()和wait()方法的區別 為什麼wait(),notify(),notifyAll()等方法都定義在Object類中 多執行緒

公共WIFI隱患大:密碼性取向暴露了

請慎讀這則關於公共WIFI的故事 我們將一名黑客帶到一家咖啡館,在20分鐘之內,他獲得了所有人的出生地,就讀學校,以及他們最近Google過的5件事等資訊。 Wouter Slotnoom,34歲,在他的揹包裡隨身帶著一個比香菸盒略大、配有天線的黑色裝置。我在阿姆斯特丹中心的一家咖啡館見到了Wout

網上網賭騙說維護通知幾天了還提不了怎麼辦

網上有很多老哥不知道要怎麼鑑別真假平臺。才會被外觀華麗,什麼高利潤和高財經,註冊送福利,還有隻是在網上看到圖片上的官網就進入註冊充值,更離譜的是有些人只是找了個聯絡方式而進入遊戲的等等這些都是黑網黑託佈下的陷阱把你們騙入包囊實現合夥黑人計劃,看著多少無辜的網友們陷入黑網,我接觸不少平臺,真正靠譜的也就那麼一家