SQL Server數據庫sa密碼相關問題的解決方法
1、請教如何查找sqlserver的sa密碼?
查詢分析器,連接時,身份驗證使用'使用windows身份驗證'
然后,執行:
EXEC sp_password NULL, 'NewPassword', 'Sa'
企業管理器-->實例名-->安全性-->登錄-->雙擊右邊的SA-->更改密碼
問:丟失SA密碼如何找回?
答:用戶操作失誤造成密碼丟失。有兩種方法:
如果數據不多,可重裝TNSDB數據庫。如果只想找回密碼,可將安裝盤中的tnsdb.txt文件中的“insert into
tns_secu_user(c_user_name,c_user_pwd,c_user_code,i_user_type,
c_expiry_date,c_user_lock,c_user_disa,c_who_crea,c_when_crea,
c_who_modi,c_when_modi) values('sa','c12e01f2a13ff5587e1e9e4aedb8242d','',1,'','1','1','','','','')
%”行。其中‘sa’后的‘c12e01f2a13ff5587e1e9e4aedb8242d’字串為sa的密碼。
用他來替換tnsdb庫中tns_secu_user表中的sa密碼。字段為c_user_pwd.
2、sql server2000忘記sa密碼的解決方法
以“windows身份驗證”方式登錄SQL查詢分析器,然后執行
EXEC sp_password NULL,'hello','sa'
就可以將sa的密碼改為hello了。
3、SQL忘記sa密碼修改方法
如果你在NT下(包括2000)裝的SQL Server,則可以這樣做:
直接打開'查詢分析器'(注意不是從'企業管理器'中進入,可以從開始菜單的程序組進去,如果找不到的話,直接在'運行'中輸入'isqlw.exe'也可);
選擇'Windows身份驗證'進入,不需要輸入密碼,只要你是本機的系統管理員或者域管理員,此時自動成為SQL Server的管理員;
在查詢分析器窗口中輸入下面的語句直接更改SA密碼:
sp_password Null,'ok','sa'
運行后sa的密碼變為'ok'
sp_password存儲過程的功能是更改SQL Server登錄的密碼;
語法格式:
sp_password [ [ @old = ] http://support.microsoft.com/kb/256986/EN-US/) Microsoft Windows 注冊表說明
警告:注冊表編輯器使用不當可導致嚴重問題,可能需要重新安裝操作系統。Microsoft 不能保證您可以解決因注冊表編輯器使用不當而導致的問題。使用注冊表編輯器需要您自擔風險。
如果不能確定如何驗證 MSDE 安裝的身份驗證模式,可以查看相應的注冊表項。默認情況下,對于 Windows 身份驗證,Windows LoginMode 注冊表子項的值設置為 1。如果啟用了混合模式身份驗證,則此值為 2。
? LoginMode 子項的位置取決于您是將 MSDE 作為默認 MSDE 實例安裝還是作為命名實例安裝。如果 MSDE 是作為默認實例安裝的,則 LoginMode 子項位于以下注冊表子項中:
HKLMSoftwareMicrosoftMSSqlserverMSSqlServerLoginMode
? 如果 MSDE 是作為命名實例安裝的,則 LoginMode 子項位于以下注冊表子項中:
HKLMSoftwareMicrosoftMicrosoft SQL Server%InstanceName%MSSQLServerLoginMode
注意:切換身份驗證模式之前,必須設置 sa 密碼,以免暴露潛在的安全漏洞。
有關其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
274773 (http://support.microsoft.com/kb/274773/EN-US/) FIX:If You Change Windows Security to Windows/SQL Security the SA Password is Blank
要從混合模式切換到集成 (Windows) 身份驗證模式,請按以下步驟操作: 1. 要停止 MSSQLSERVER 以及所有其他相關服務(如 SQLSERVERAgent),請在“控制面板”中打開服務程序。
2. 打開注冊表編輯器。要打開注冊表編輯器,請依次單擊開始和運行,然后鍵入:“regedt32”(不包括引號)
單擊確定。
3. 找到以下兩個子項之一(取決于 MSDE 是作為默認 MSDE 實例安裝的還是作為命名實例安裝的):
HKEY_LOCAL_MACHINESoftwareMicrosoftMSSqlserverMSSqlServer
- 或者 -
HKEY_LOCAL_MACHINESoftwareMicrosoftMicrosoft SQL ServerMSSQLServer
4. 在右窗格中,雙擊 LoginMode 子項。
5. 在 DWORD 編輯器對話框中,將此子項的值設置為 1。確保選擇了 Hex 選項,然后單擊確定。
6. 重新啟動 MSSQLSERVER 和 SQLSERVERAgent 服務以使更改生效。
SQL Server 安裝的最佳安全方案
下面的每一項都會增強系統的安全性,并且它們都屬于任何 SQL Server 安裝的標準安全“最佳方案”。 ? 使用非空密碼保護 sa 登錄帳戶。有些蠕蟲程序僅當您未對 sa 登錄帳戶采取安全措施時才會發作。 有關其他信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:
313418 (http://support.microsoft.com/kb/313418/EN-US/) PRB:使用空 (NULL) SA 密碼的非安全的 SQL Server 會給蠕蟲程序以可乘之機
因此,要確保內置 sa 帳戶具有強密碼,必須按照 SQL Server 聯機叢書的“系統管理員 (SA) 登錄”主題中的建議進行操作(即使您從未直接使用 sa 帳戶)。
? 阻塞位于 Internet 網關的端口 1433,然后分配 SQL Server 偵聽備用端口。
? 如果在 Internet 網關上必須使用端口 1433,請啟用進出過濾功能以防止誤用端口。
? 在 Microsoft Windows NT 帳戶(而非本地系統帳戶)下運行 SQLServer 服務和 SQL Server 代理。
? 啟用 Microsoft Windows NT 身份驗證,然后啟用對成功和失敗登錄的審核。然后,停止并重新啟動 MSSQLServer 服務。配置您的客戶端使用 Windows NT 身份驗證。
=============================
SQL Server 2000 的sa密碼忘記之后的解決方法:
今天,發現我維護的服務器的SQL2000 出錯了。 前一段時間把服務器的密碼告訴了另一個同事,他在上面裝了個他做的系統,也不知道被他怎么搞的一下。
現在竟然啟動企業管理器也連接不上。 原來的sa密碼也不是我設置的。 他說也沒有動過SQL2000,真的是麻煩。
以下是我找到的解決方法,但是對于我的機器好象還不太行。
'無法連接到服務器,用戶xxx登陸失敗'
該錯誤產生的原因是由于SQL Server使用了'僅 Windows'的身份驗證方式,
因此用戶無法使用SQL Server的登錄帳戶(如 sa )進行連接.解決方法如下所示:
1.在服務器端使用企業管理器,并且選擇'使用 Windows 身份驗證'連接上 SQL Server
2.展開'SQL Server組',鼠標右鍵點擊SQL Server服務器的名稱,選擇'屬性',再選擇'安全性'選項卡
3.在'身份驗證'下,選擇'SQL Server和 Windows '.
4.重新啟動SQL Server服務.
在以上解決方法中,如果在第 1 步中使用'使用 Windows 身份驗證'連接 SQL Server 失敗,
那就通過修改注冊表來解決此問題:
1.點擊'開始''運行',輸入regedit,回車進入注冊表編輯器
2.依次展開注冊表項,瀏覽到以下注冊表鍵:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer]
3.在屏幕右方找到名稱'LoginMode',雙擊編輯雙字節值
4.將原值從1改為2,點擊'確定'
5.關閉注冊表編輯器
6.重新啟動SQL Server服務.
此時,用戶可以成功地使用sa在企業管理器中新建SQL Server注冊,
但是仍然無法使用Windows身份驗證模式來連接SQL Server.
這是因為在 SQL Server 中有兩個缺省的登錄帳戶:
BUILTIN/Administrators
<機器名>/Administrator 被刪除.
要恢復這兩個帳戶,可以使用以下的方法:
1.打開企業管理器,展開服務器組,然后展開服務器
2.展開'安全性',右擊'登錄',然后單擊'新建登錄'
3.在'名稱'框中,輸入 BUILTIN/Administrators
4.在'服務器角色'選項卡中,選擇'System Administrators'
5.點擊'確定'退出
6.使用同樣方法添加 <機器名>/Administrator 登錄.
說明:
以下注冊表鍵:
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSSQLServer/MSSQLServer/LoginMode 的值決定了SQL Server將采取何種身份驗證模式.
1.表示使用'Windows 身份驗證'模式
2.表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證).
我在處理這個問題是這樣做的:
1. 重新注冊SQL服務器,輸入服務器名為: LOCALHOST ,這個時候系統可以重新連接到SQL數據庫
2.打開LOCALHOST下面的安全性->登錄 ,修改sa的密碼
3. 編輯默認的Local服務連接的屬性 ,修改為正確的sa的密碼。
這樣就可以正確的啟動了LOCAL連接了。
最后當然可以刪除LOCALHOST連接。