我被SQL關(guān)到門外的解決之道

字號:

不久之前,有朋友打電話找筆者,求救說自己被SQL Server關(guān)到了門外,問有沒有辦法解決,朋友之事不敢怠慢,趕緊跑去查看,順帶了些資料過去,以備查看,畢竟,這種事不才也是第一次遇到,呵呵。
    跑過去看了一下,果然"sysadmin"無法登錄,真的是被關(guān)到門外,這可有些麻煩了,朋友又不想重裝SQL,只好翻資料了,最終,在某某資料某某部分查到某某文章如下:
    要想重新訪問SQL Server,您需要修改SQL Server 2000 和 SQL Server 7.0決定SQL Server身份驗證模式的注冊表鍵值。
    在SQL Server 7.0中,該鍵為:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
    \MSSQLServer\LoginMode
    在SQL Server 2000中,該鍵為:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQLServer
    \MSSQLServer\LoginMode
    “LoginMode”的值為0表示只進行Windows 的身份驗證,為1表示驗證模式為混合模式。在您把自己關(guān)在外面之后,您可以把“LoginMode”改為1,重新啟動SQL Server,然后以sa(system administrator)身份登錄,輸入您知道的sa密碼即可。
    以下關(guān)于SQL Server的角色成員的信息可能會幫助您理解為什么您會把自己關(guān)在SQLServer外面。在您安裝SQL Server 2000 或 7.0的時候,安裝進程自動地為“BUILTIN\Administrators”創(chuàng)建一個登錄帳號,該帳號為“sysadmin”角色成員。“BUILTIN\Administrators”登錄帳號代表了Microsoft Windows® 2000 或Microsoft Windows NT® server 上的系統(tǒng)管理員本地組。 Windows 2000 或 Windows NT的 “Administrator”帳戶是系統(tǒng)管理員本地組的成員。此外,如果您的服務(wù)器是一個域的成員(包括Windows 2000 的域和Windows NT 4.0的域),“Domain Admins”全局組也會成為本地系統(tǒng)管理員組的成員。這意味著系統(tǒng)管理員本地組的所有成員都會自動地獲得SQL Server上的“sysadmin”權(quán)限。
    為了加強您的SQL Server的安全性,您可能更愿意創(chuàng)建您自己的組并授予它“sysadmin”權(quán)限,然后刪除“BUILTIN\Administrators”登錄帳號,或者至少從“sysadmin”服務(wù)器角色中刪除它。使用這種方法,您可以較好地對誰可以訪問您的SQL Server進行控制。這種方法也斷開了SQL Server 系統(tǒng)管理員和Windows 2000 或 Windows NT 管理員之間的聯(lián)系, 因為他們通常有不同的任務(wù),并且需要不同的權(quán)限。為了加強安全性,您可能想把SQL Server配置成只支持Windows身份驗證。但是,必須要記?。哼@種配置會禁用您的“sa”帳戶。(這個方法可能是禁用“sa”帳戶的方法,因為您不能刪除“sa”帳戶。)如果您以錯誤的順序?qū)嵤┝诉@個安全措施,您將不能再以>“sysadmin”的身份登錄到SQL Server上,除非按照我上面所說的方法修改注冊表鍵值。正確的順序是:
    創(chuàng)建Windows 2000 或者 Windows NT 用戶組并為組分配成員。例如:創(chuàng)建一個叫做“SQLAdmins”的組。
    把“SQLAdmins”映射為SQL Server里的一個用Windows身份驗證方式驗證登錄的帳戶,并把該帳戶分派到“sysadmin”服務(wù)器角色。
    刪除“BUILTIN\Administrators”登錄帳戶或者把它從“sysadmin”服務(wù)器角色中刪除。
    把SQL Server的身份驗證模式改為“僅進行Windows身份驗證”。
    重新啟動SQL Server 以反映身份驗證模式的變化。
    注意: 如果您以下面的這種錯誤順序?qū)嵤┻@些步驟:刪除“BUILTIN\Administrators”登錄帳戶,改變SQL Server 的身份驗證模式為“僅進行Windows身份驗證”,然后重新啟動SQL Server,那么“sa” 帳戶將被禁用,并且因為沒有定義其它Windows身份驗證登錄帳戶而無法進入SQL Server。為了避免這種情況發(fā)生,請以正確的順序?qū)嵤┻@些安全措施。