2010-04-07 49 views
1

正如標題所示:ASP.NET應用程序是否允許管理員更改SQL Server連接?

對於允許管理員動態地從應用程序更新SQL Server連接字符串而不僅僅是嚮應用程序顯示連接詳細信息,您有何看法?

由於數據庫連接如此重要,並且在高度使用的系統上,連接的突然更改似乎可能會導致問題。不過,我認爲顯示服務器和目錄以及連接是否使用SSPI或SQL Auth對於不喜歡使用.NET配置文件的管理員可能會有所幫助。

想法?

回答

2

您如何識別管理員?大概不是通過查看數據庫。因爲如果您確實使用了數據庫,然後將數據庫更改爲另一臺服務器,則可能它們不是管理員或沒有數據庫,然後bam--他們無法進入並修復它。

通常,我喜歡在帶外(配置文件或甚至在Active Directory中進行維護,因此它位於集中管理的資源中)。我們通常還有應用程序管理員(角色,維護人員,審批人員,與工作流程相關的「管理員」),他們在技術上不是系統管理員。通常,我們不允許系統管理員作爲應用程序中的用戶,管理員或管理員。即我可能有一個採購訂單系統管理員可以使採購訂單失效,但他們不能更改數據庫連接,並且我有一個系統管理員甚至不能創建或批准採購訂單,更不用說讓一個採購訂單失效,但他們可以更改配置或Active Directory中的數據庫連接,作爲升級或遷移的一部分。

我同意調試頁面,幫助頁面或關於頁面可以用於向系統管理員和應用程序管理員顯示信息。他們是否應該被允許改變那裏的事情真的取決於。

1

聽起來像兩個不好的想法。在應用程序運行時允許更改連接字符串肯定會導致中斷(連接斷開,數據不同步以及誰知道其他內容)。甚至向任何人(甚至管理員)顯示連接細節似乎都是一個危險的安全漏洞。

什麼樣的網站你有這種事情是必要的?

+0

WordPress的安裝頁面可以做到這一點(當然,PHP的等價物),正是因爲WordPress用戶並不是非常聰明的系統管理員。 – MatthewMartin 2010-04-07 20:11:53

+0

我想這是有道理的安裝。在用戶需要連接到不同dbs的單用戶系統(例如production vs archive)上可能也是有意義的。 – Ray 2010-04-07 20:14:48

+0

Ray,詳細信息只會顯示給授權權限最高的人員,換句話說就是設置應用程序的系統管理員。重點是他們可以簡單地登錄到應用程序來驗證應用程序正在使用數據庫服務器XYZ和數據庫123哦,它正在使用集成身份驗證。 我認爲改變數據庫設置不是一個好主意,但我想看看其他人的想法。 順便說一句,這是一個僅限Intranet的應用程序。 – 2010-04-08 20:58:50

0

要求,在充分信任你的應用程序運行,否則它只是使用System.Web.Configuration命名空間:

http://www.beansoftware.com/ASP.NET-Tutorials/Modify-Web.Config-Run-Time.aspx

在任何改變web.config中的應用程序將循環使用,所以仍然ISN如果銷售可能在飛行中,那麼在今天中午你會想要的東西。

此外,通常認證和授權依賴於數據庫。因此,如果您無法進行身份驗證和授權,您將無法進入管理頁面更改連接字符串! (除非您的授權和身份驗證沒有任何內容涉及數據庫,至少對於您考慮的管理頁面而言)

+0

感謝這篇文章,我知道如何改變設置,但是真的希望看到人們是否曾經這樣做過。 – 2010-04-08 20:59:49

0

就我個人而言,我不喜歡讓管理員在活動網站上更改任何內容。所有配置更改都應通過源代碼經過的相同版本控制,時間戳,用戶歸屬,構建系統檢查過程。只有這樣你才能繪製連接「在時間X停止工作,因爲用戶Y在時間B改變了配置A」。

關於這個話題的極端看法我知道,但考慮到可以追溯到操作員錯誤的絕大部分停機時間,我相信這是有道理的,而且我真的無法理解人們能夠編輯的魅力活動服務器上的脆弱XML文件,其中一個額外的'>'可以使整個網站停止運行。

+0

這在我看來並不是真的可以接受。可能存儲在appSettings部分中的簡單應用程序設置可能會一直更新,顯然這會導致應用程序池回收,但這些設置實際上與版本控制無關,特別是如果這是公開可用的產品。 另外,如果管理員真的想要更改網站上的某些內容,他們只需通過遠程桌面更新配置文件,並且您的應用程序只能捕獲網站的回收和重新啓動。 – 2010-04-08 21:03:23

+0

這絕對不適合每個人,但以我的經驗運行擁有數百萬用戶的大型系統,允許管理員在沒有檢查的情況下手動更改在服務器上的配置設置,並且沒有審計跟蹤是非常糟糕的主意。編輯配置文件,檢查它,看它通過測試並自動部署的過程並不是那麼糟糕。如果您只是想配置設置,請使用單獨的源代碼管理系統。事實證明,擁有審計日誌顯示誰更改了什麼時間以及如何將該事件與事件日誌綁定在一起的好處已被證明是非常重要的。 – 2010-04-08 21:36:56

+0

哦,並且管理員仍然可以更改它,如果您決定將它留在XML中,他們可能會這樣做,順便說一句,現在您沒有理由通過構建系統來使用它 - 請使用強類型的C#如果你喜歡單元測試設置,代碼合同等也要檢查它們)。但是,您也有操作手冊,操作步驟和訪問控制,限制誰可以在服務器上進行更改。 – 2010-04-08 21:41:21

相關問題