史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式 & 網頁設計技術文件 (http://forum.slime.com.tw/f138.html)
-   -   我被SQL關到門外的解決之道 (http://forum.slime.com.tw/thread118513.html)

psac 2004-07-27 04:27 PM

我被SQL關到門外的解決之道
 
不久之前,有朋友打電話找筆者,求救說自己被SQL Server關到了門外,問有沒有辦法解決,朋友之事不敢怠慢,趕緊跑去檢視,順帶了些資料過去,以備檢視,畢竟,這種事不才也是第一次遇到,呵呵。


  跑過去看了一下,果然"sysadmin"無法登入,真的是被關到門外,這可有些麻煩了,朋友又不想重裝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表示驗證模式為混合模式。


在您把自己關在外面之後,您可以把「LoginMode」改為1,重新啟動SQL Server,然後以sa(system administrator)身份登入,輸入您知道的sa密碼即可。

  以下關於SQL Server的角色成員的資訊可能會說明 您理解為什麼您會把自己關在SQLServer外面。


在您安裝SQL Server 2000 或 7.0的時候,安裝行程自動地為「BUILTIN\Administrators」新增一個登入帳號,該帳號為「sysadmin」角色成員。「BUILTIN\Administrators」登入帳號代表了Microsoft Windows® 2000 或Microsoft Windows NT® server 上的系統管理員本機組。 Windows 2000 或 Windows NT的 「Administrator」帳戶是系統管理員本機組的成員。



此外,如果您的伺服器是一個域的成員(包括Windows 2000 的域和Windows NT 4.0的域),「Domain Admins」全局組也會成為本機系統管理員組的成員。這意味著系統管理員本機組的所有成員都會自動地獲得SQL Server上的「sysadmin」權限。

  為了加強您的SQL Server的安全性,您可能更願意新增您自己的組並授予它「sysadmin」權限,然後刪除「BUILTIN\Administrators」登入帳號,或者至少從「sysadmin」伺服器角色中刪除它。


使用這種方法,您可以較好地對誰可以訪問您的SQL Server進行控制。這種方法也中斷連線了SQL Server 系統管理員和Windows 2000 或 Windows NT 管理員之間的聯繫, 因為他們通常有不同的工作,並且需要不同的權限。



為了加強安全性,您可能想把SQL Server配置成只支持Windows身份驗證。

但是,必須要記住:這種配置會禁用您的「sa」帳戶。

(這個方法可能是禁用「sa」帳戶的唯一方法,因為您不能刪除「sa」帳戶。)如果您以錯誤的順序實施了這個安全措施,您將不能再以>「sysadmin」的身份登入到SQL Server上,除非按照我上面所說的方法修改註冊表鍵值。正確的順序是:

新增Windows 2000 或者 Windows NT 用戶組並為組分配成員。例如:新增一個叫做「SQLAdmins」的組。

把「SQLAdmins」映射為SQL Server裡的一個用Windows身份驗證方式驗證登入的帳戶,並把該帳戶分派到「sysadmin」伺服器角色。

刪除「BUILTIN\Administrators」登入帳戶或者把它從「sysadmin」伺服器角色中刪除。

把SQL Server的身份驗證模式改為「僅進行Windows身份驗證」。

重新啟動SQL Server 以反映身份驗證模式的變化。


注意: 如果您以下面的這種錯誤順序實施這些步驟:

刪除「BUILTIN\Administrators」登入帳戶,改變SQL Server 的身份驗證模式為「僅進行Windows身份驗證」,然後重新啟動SQL Server,那麼「sa」 帳戶將被禁用,並且因為沒有定義其它Windows身份驗證登入帳戶而無法進入SQL Server。


為了避免這種情況發生,請以正確的順序實施這些安全措施。

看完上面這些,按步實施,一切OK!


所有時間均為台北時間。現在的時間是 04:47 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1