SQL SERVER 2008 登錄失敗(SQL和windows都沒有對應的權限)

      昨天在測試一些權限今天早上來就發現SQL SERVER 登錄不上去,報錯爲: 用戶登錄失敗:消息 18456,級別 14,狀態 1,服務器 XXX,第 1 行 .  用戶 'XXX' 登陸失敗。個人服務和代理都是自動啓動的,因此問題不在這了,因爲是本地服務,也沒有多個賬戶,測試的時候Sa也被本身禁用了。有的用戶就是部分庫的只讀權限,怎麼辦呢? sql

      方法就是:把 sql 啓動到單用戶模式,而後用 sqlcmd -A 登陸,前提是你須要有電腦的管理員權限。網上有不少方法是同樣的,可是對於單用戶模式的說明都不太詳細,至少對於像我這種小白來說仍是有必定的理解問題,因此寫一下以便於像我同樣誤操做致使的同窗進行學習。服務器

啓用本地賬戶:
1.先看一下本機的賬戶是否具備管理員的權限,若是沒有添加上。
2.在開始菜單的搜索框中輸入 cmd , 右鍵單擊選擇以管理員身份運行
3.在命令提示符輸入 NET STOP MSSQLSERVRE 中止MSSQLSERVER運行(若已經中止則能夠跳過此步驟)
4.若3有問題,提示報錯,則能夠在開始 -->SQL SERVER --> 配置工具 -->SQL SERVER 配置管理器 --> 打開SQL SERVER屬性-->高級 --> 啓動參數裏面加上 -m
      加參數的時候注意一下,必定要加在啓動參數的最後面而且加上分號,以便於以前的相隔開來。如: -dD:\DATA\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG;-lD:\DATA\mastlog.ldf  ;-m
5.若以上均無問題,則切換到安裝路徑,即Binn下sqlservr.exe的路徑
     如:cd C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn
6.執行 sqlservr.exe,即單用戶模式進入了
7.再以管理員賬戶從新登錄開啓一個窗口,輸入SQLCMD -A
8.輸入你要更改的操做命令便可,在此處我須要的是把本機賬戶添加 , 如:dom

USE master
GO
CREATE LOGIN  [domain\username]  FROM WINDOWS WITH DEFAULT_DATABASE=[Master]
GO
EXEC sp_addsrvrolemember @loginame=N'domain\username', @rolename=N'sysadmin'
GO


爲了不錯誤,能夠再加一個SQL的賬戶以備不時之需, 也能夠把sa命令啓用 :工具

-- 添加用戶T1並給予管理員的權限
USE [master]
GO
CREATE LOGIN [T1] WITH PASSWORD=N'T1@123', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
EXEC master..sp_addsrvrolemember @loginame = N'T1', @rolename = N'sysadmin'
GO

-- 啓用SA
ALTER LOGIN [sa] ENABLE
GO


9.以上操做完成以後關閉2個命令行窗口,啓動sqlserver,便可以登錄。sqlserver

 

注: 此環境爲win7 + sql server 2008 其它環境沒有嘗試,僅做參考學習

相關文章
相關標籤/搜索