Chapter 2 User Authentication, Authorization, and Security(4):限制SA帳號的系統管理權限,authentication
原文出處:http://blog.csdn.net/dba_huangzj/article/details/38817915,專題目錄:http://blog.csdn.net/dba_huangzj/article/details/37906349
未經作者同意,任何人不得以“原創”形式發布,也不得已用於商業用途,本人不負責任何法律責任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38756693
前言:
SA帳號是SQL Server的系統管理員,在安裝過程中就可以啟用,在SQL Server 2005之前,這個帳號不能修改,但是從2005開始,可以重新命名或者禁用sa來減少被攻擊的風險。在後續版本中,Sa僅作為向後相容。由於SA是眾人皆知的帳號,不建議使用。
實現:
1. 禁用sa:
ALTER LOGIN [sa] DISABLE;
2. 重新命名sa:
ALTER LOGIN [sa] WITH NAME=[換成不容易被猜到的名字];
3. 重新命名sa之後,可以用下面的查詢找到原sa是現在的什麼帳號:
SELECT * FROM sys.sql_logins WHERE principal_id = 1;
其中principal_id為1,SID是0x01的就是原sa。
原理:
在安裝時,如果沒有選擇混合身分識別驗證,sa是預設禁用的。如果你有sysadmin或者securityadmin固定伺服器角色,可以修改sa的密碼。當你決定重新命名sa時,要檢查是否有其他應用在使用這個帳號,重新命名將可能導致這些應用運行失敗。
當沒有管理員權限時如何管理
本人見過很多情景,由於有意無意,把所有具有管理員權限的Windows、SQL 帳號刪了,而sa又被禁用或不知道密碼時,很多操作都不能進行,解決這種問題的方法可以是重建master庫,詳見:http://msdn.microsoft.com/zh-cn/library/dd207003.aspx(重建系統資料庫)。但是這會丟失所有登入資訊,除非你有最近的master庫備份。並且需要停止SQL Server服務。
還有一種方法,本人實踐過:
啟用本地帳戶: 1.先看一下原生帳戶是否具有管理員的許可權,如果沒有添加上。 2.在開始菜單的搜尋方塊中輸入 cmd , 按右鍵選擇以管理員身份運行 3.在命令提示字元輸入 NET STOP MSSQLSERVRE 停止MSSQLSERVER運行(若已經停止則可以不用此方法) 4.若3有問題,提示報錯,則可以在開始 -->SQL SERVER --> 組態工具 -->SQL SERVER 服務 --> 開啟SQL SERVER屬性-->進階 --> 啟動參數裡面加上 -m5.若以上均無問題,則切換到安裝路徑,即Binn下sqlservr.exe的路徑 如:cd C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn 6.執行 sqlservr.exe,即單一使用者模式進入了 7.再以系統管理員帳戶重新登陸開啟一個視窗,輸入SQLCMD -A 8.輸入你要更改的操作命令即可,在此處我需要的是把本機帳戶添加 如: USE master GO CREATE LOGIN [需要添加的帳號,一般格式是 機器名\登入帳號名] FROM WINDOWS WITH DEFAULT_DATABASE=[Master] GO EXEC sp_addsrvrolemember @loginame=N'機器名\登入帳號名', @rolename=N'sysadmin' GO 為了避免錯誤,可以再加一個SQL的帳戶以備不時之需, 也可以把sa命令啟用9.以上操作完成之後重新啟動SQL SERVER服務登陸即可
另外可以看看下面的部落格:
http://www.cnblogs.com/lyhabc/p/3513560.html
http://sqlserver-help.com/2012/02/08/help-i-lost-sa-password-and-no-one-has-system-administrator-sysadmin-permission-what-should-i-do/
以SQL Server and Windows Authentication mode登陸後出現麻煩?
你的問題把我搞慘了,我也遇到過。解決辦法如下:
“在建立與伺服器的串連時出錯。在串連到 SQLServer 2005 時,在預設的設定下 SQL Server不允許進行遠端連線可能會導致此失敗。 (provider: 具名管道提供者,error: 40 - 無法開啟到 SQL Server 的串連)”
我太恨這句話了。本以為會很簡單的資料庫連接,居然困擾了我好幾天。問了身邊很多人、查了大量資料無果,今天終於在網上找到正確的答案並順利解決了。究其根本,原因出在server參數設定的問題上。
以下是完整的解決方案:
1:最重要,servers服務開啟。
1.安裝一個SQLServer的管理工具(VS2005隻有組態工具),據說微軟的官方網站有下。
2.開啟sql2005遠端連線功能,開啟辦法如下:
組態工具->sqlserver介面區配置器->服務和串連的介面區配置器->開啟MSSQLSERVER節點下的DatabaseEngine 節點,選擇"遠端連線",接下建議選擇"同時使用TCP/IP和namedpipes",確定後,重啟資料庫服務就可以了.
3.登陸設定改為,Sql server and windowsAuthentication方式同時選中,具體設定如下:
manage管理器->windowsAuthentication(第一次用windows方式進去),->物件總管中選擇你的資料服務器--右鍵>屬性>security>Sqlserver and windows Authentication方式同時選中.
4:設定一個Sql server方式的使用者名稱和密碼,具體設定如下:
進入manage管理器後,找到伺服器下的Security->Logins->sa,右鍵屬性,設定密碼為sa(當然也可以設定其他使用者名稱和密碼)這樣就設定了一個使用者名稱為sa,密碼為sa的使用者,下次在登陸時,可以用Sql server方式,使用者名稱為sa,密碼為:sa的使用者進資料庫了。
5: 做完上面四步後,這樣寫連接字串就可以順利進入資料庫了,
(server=.\\sqlexpress;uid=sa;pwd=sa;database=master");
注意!正確的Server名是這樣的,機器名\SQLEXPRESS而不是LOCALHOST,127.0.0.1,MJZG(機器名)比如我的是這樣的Server:TDS\SQLEXPRESS
幾個專業名詞:有關網路的
英文原義:The Internet Gopher Protocol
中文釋義:(RFC-1436)網際Gopher協議
註解:這是一種互連網沒有發展起來之前的一種從遠程伺服器上擷取資料的協議。Gopher協議目前已經很少使用,它幾乎已經完全被HTTP協議取代了。
IETF
1、概述
IETF(互連網工程工作群組—The Internet Engineering Task Force)是鬆散的、自律的、志願的民間學術組織,成立於1985年底, 其主要任務是負責互連網相關技術規範的研發和制定。
IETF是一個由為互連網技術工程及發展做出貢獻的專家自發參與和管理的國際民間機構。它彙集了與互連網架構演化和互連網穩定運作等業務相關的網路設計者、運營者和研究人員,並向所有對該行業感興趣的人士開放。任何人都可以註冊參加IETF的會議。IETF大會每年舉行三次,規模均在千人以上。
IETF大量的技術性工作均由其內部的各類工作群組協作完成。這些工作群組按不同類別,如路由、傳輸、安全等專項課題而分別組建。IETF的交流工作主要是在各個工作群組所設立的郵件組中進行,這也是IETF的主要工作方式。
目前,IETF已成為全球互連網界最具權威的大型技術研究組織。但是它有別於像國際電聯(ITU-International Telecommunication Union)這樣的傳統意義上的標準制定組織。IETF的參與者都是志願人員,他們大多是通過IETF每年召開的三次會議來完成該組織的如下使命:
1.評鑑互連網的運行和技術問題,並提出解決方案;
2.詳細說明互連網協議的發展或用途,解決相應問題;
3.向IESG提出針對互連網協議標準及用途的建議;
4.促進互連網研究工作群組(IRTF)的技術研究成果向互連網社區推廣;
5.為包括互連網使用者、研究人員、行銷商、製造商及管理者等提供資訊交流的論壇。
2、IETF相關組織機構
(1)互連網協會(ISCO -Internet Society)
ISCO是一個國際的,非盈利性的會員制組織,其作用是促進互連網在全球範圍的應用。實現方式之一便是對各類互連網組織提供財政和法律支援,特別是對IAB管理下的IETF提供資助。
(2)互連網架構委員會(IAB-Internet Architecture Board)
IAB是ISOC的技術諮詢團體,承擔ISCO技術顧問組的角色;IAB負責定義整個互連網的架構和長期發展規劃,通過IESG向IETF提供指導並協調各個IETF工作群組的活動,在新的IETF工作群組設立之前IAB負責審查此工作群組的章程,從而保證其設定的合理性,因此可以認為IAB是IETF的最高技術決策機構。
另外,IAB還是IRTF的組織和管理者,負責召集特別工作群組對互連網結構問題進行深入的研討。
(3)互連網工程指導組(IESG-Internet Engineering Steering Group)
IETF的工作群組被分為8個重要的研究領域,每個研究領域均有1-3名領域管理者(Ads—Area Directors),這些領域管理者ADs均是IESG的成員。
IESG負責IETF活動和標準制定程式的技術管理工作,核准或糾正IETF各工作群組的研究成果,有對工作群組的設立終結權,確保非工作群組草案在成為請求註解檔案(RFC)時的準確性。
作為ISOC(Internet協會)的一部分,它依據ISOC理事會......餘下全文>>