Sql-Server

SQL Server 中 SA 帳戶的備用帳戶是什麼?

  • December 7, 2015

我的客戶目前正在為他們的應用程序使用 SQL Server。此時他們到處都在使用 SA 帳戶。出於安全原因,我們需要禁用 SA 帳戶。我的解決方案是創建另一個高級使用者(不是管理員),例如標準使用者和 root 使用者。開發只需要訪問 CRUD 操作。那麼,這個新帳戶的權限/角色/特權應該是什麼?我們需要將相同的模型複製到只需要讀取權限的網際網路伺服器(從查看器端)。我該怎麼做?

兩個不同的版本,2008 R2 和 2012。

在您的開發伺服器上,您可以授予標準使用者db_datawriterdb_datareader角色。您可能希望將該db_owner角色授予高級使用者。由於這些是數據庫級別的角色,因此您必須為每個數據庫重複此操作。關於 Web 伺服器,您應該創建一個僅被授予db_datareader角色的受限使用者。

由於sa登錄被硬編碼為 sysadmin 伺服器的成員,因此您不能限制此帳戶的權限。遷移的最佳方法是替換所有可以找到的連接字元串,然後最終禁用該sa帳戶。

一個好的做法是創建一個與“sa”等效的登錄名,然後禁用“sa”帳戶。

創建登錄/使用者組合也是一種很好的做法,允許您遵循為系統的任何登錄分配最低權限的做法。這不僅為您提供了更好的審計跟踪,以查看誰在更改架構,而且還提供了更好的安全性。

“sa”使用者對您實例上的所有數據庫都擁有 db_owner 權限,要創建等效登錄名,請執行以下操作。使用 some 創建登錄,將 sysadmin 角色授予登錄,將使用者映射到所有數據庫並將 db_owner 角色添加到使用者。

為您的其他使用者創建只能訪問他們需要的那些數據庫對象/操作的登錄名/使用者組合。

創建這些登錄名後,您將能夠分配所需的權限。在環境中,使用者被添加到 db_reader 組,然後根據每個對象授予顯式權限撤銷。

您可以通過創建新的數據庫角色並在那裡管理授予/撤銷的權限並將需要這些權限的使用者添加到該數據庫角色來簡化多個使用者。

引用自:https://dba.stackexchange.com/questions/123060