2023年5月9日 星期二

[研究] SQL Server 2019 密碼原則、帳戶鎖定原則

[研究] SQL Server 2019 密碼原則、帳戶鎖定原則

2023-05-09

執行 gpedit.exe 或 secpol.msc。

密碼原則:電腦設定\原則\Windows 設定\安全性設定\帳戶原則\密碼原則。




********************************************************************************

SQL Server 密碼原則

https://learn.microsoft.com/zh-tw/sql/relational-databases/security/password-policy?view=sql-server-ver16

SQL Server 可以使用 Windows 密碼原則機制。 密碼原則適用於使用 SQL Server 驗證的登入,以及適用於具有密碼的自主資料庫使用者。

SQL Server 可以將 Windows 中使用的相同複雜性和到期原則套用於 SQL Server 內部使用的密碼。 這項功能取決於 NetValidatePasswordPolicy API。

密碼複雜性

密碼複雜性原則是為了阻止暴力攻擊而設計,方法是盡可能地增加密碼數目。 當強制執行密碼複雜性原則時,新的密碼必須符合下列指導方針:

  • 密碼不包含使用者的帳戶名稱。
  • 密碼長度至少為八個字元。
  • 密碼包含下列四種類別的其中三種:
    • 拉丁文大寫字母 (A 到 Z)。
    • 拉丁文小寫字母 (a 到 z)。
    • 以 10 為基底的數字 (0 到 9)。
    • 非英數字元,例如:驚嘆號 (!)、錢幣符號 ($)、數字符號 (#) 或百分比符號 (%)。
  • 密碼長度最多可達 128 個字元。 盡可能使用長且複雜的密碼。

密碼過期

密碼過期原則用於管理密碼的壽命。 當 SQL Server 強制執行密碼到期原則,系統會提醒使用者變更舊密碼,並停用密碼已過期的帳戶。

********************************************************************************

帳戶鎖定原則

帳戶鎖定原則 (Windows 11、Windows 10)
https://learn.microsoft.com/zh-tw/windows/security/threat-protection/security-policy-settings/account-lockout-policy

解鎖鎖定的賬戶
ALTER LOGIN  user1 WITH PASSWORD = '新密碼' UNLOCK
解鎖被鎖定的數據庫賬戶user1

********************************************************************************

GCB建議最短1天、最長90天、至少12個字元、密碼歷程最少3次,鎖定15分鐘

********************************************************************************

資料庫安全建議

1.資料庫帳號管理

1.1.官方預設帳號

1.2.是否停用或變更官方預設帳號

1.3.啟用帳號鎖定次數 (3次)

1.4.啟用帳號鎖定時間 (15分鐘)

1.5.啟用「密碼複雜度」原則(可複選)

□英文□數字□大小寫□特殊符號

1.6.啟用「最小密碼長度」原則 (至少12字元)

1.7.啟用「資料庫管理帳號的密碼最長有效期限」原則 (最長90天)

2.資料庫資料保護機制

2.1.是否具備資料保護機制(可複選)

□使用資料庫加密□資料表欄位內容加密□資料表欄位內容遮罩□其他,請補充說明

2.2.是否採用第三方加解密工具
********************************************************************************
ALTER LOGIN sa ENABLE;
GO
ALTER LOGIN sa WITH PASSWORD = '<enterStrongPasswordHere>';
GO
********************************************************************************
測試:建立「Windows驗證」帳號、密碼,環境 Windows Server 2019 + SQL Server 2019,無AD Domain










********************************************************************************

測試:建立「SQL Server驗證」帳號、密碼



(下圖)密碼長度1失敗,雖然Windows的「密碼原則」「最小密碼長度」預設0,但疑似SQL Server仍有自己的最低要求。

(下圖)可以設定的組合




(下圖) 某 Web Server 連線 SQL Server 的帳號,建議勾選「強制執行密碼原則」,但不要勾選「強制執行密碼逾期」(sa 可以勾選「強制執行密碼逾期」)









********************************************************************************

SQL Server 資料庫腳色成員資格對象 db_owner public

SQL Server 資料庫層級角色

https://learn.microsoft.com/zh-tw/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver16

  • public : 每個資料庫使用者都屬於 public 資料庫角色。
  • db_owner : 可以在資料庫上執行所有的組態和維護活動,也可以 drop 資料庫。 

權限 (Database Engine) - SQL Server | Microsoft Learn

https://learn.microsoft.com/zh-tw/sql/relational-databases/security/permissions-database-engine?view=sql-server-ver16

Database Engine 權限海報
https://aka.ms/sql-permissions-poster

**********

SQL Server 伺服器層級角色
https://learn.microsoft.com/zh-tw/sql/relational-databases/security/authentication-access/server-level-roles?view=sql-server-ver16

  • public : 每一個 SQL Server 登入都屬於公開伺服器角色。未授與或拒絕將安全性實體物件的特定權限給伺服器主體時,使用者會繼承該物件上授與給公開的權限。 只有當您想要將任何物件提供給所有使用者使用時,才指派該物件的 public 權限。 您無法變更公開的成員資格。
  • sysadmin ; 可以執行伺服器中的所有活動。

********************************************************************************

測試:帳戶鎖定測試












********************************************************************************
測試:最小密碼長度

上面 SQL Server 預設8碼長度限制,敝人測不出;但 Windows「密碼原則」的「最小長度密碼」,在「SQL Server驗證」有勾選「強制執行密碼原則」時,是必須遵守的。






********************************************************************************

相關

當系統管理員遭到鎖定時連線到 SQL Server - SQL Server | Microsoft Learn
https://learn.microsoft.com/zh-tw/sql/database-engine/configure-windows/connect-to-sql-server-when-system-administrators-are-locked-out?view=sql-server-ver16

ALTER LOGIN (Transact-SQL)
https://docs.microsoft.com/zh-tw/sql/t-sql/statements/alter-login-transact-sql?view=sql-server-ver15

密碼必須符合複雜性需求 (Windows 11、Windows 10)
https://learn.microsoft.com/zh-tw/windows/security/threat-protection/security-policy-settings/password-must-meet-complexity-requirements

密碼長度下限 (Windows 11、Windows 10)
https://learn.microsoft.com/zh-tw/windows/security/threat-protection/security-policy-settings/minimum-password-length
用者指定的字元數介於 0 到 14 之間,最佳做法將密碼長度下限設定為至少 8 的值。

密碼長度下限 (Windows 11、Windows 10)
https://learn.microsoft.com/zh-tw/windows/security/threat-protection/security-policy-settings/minimum-password-length

********************************************************************************

(完)

相關

[研究] SQL Server 2019 密碼原則、帳戶鎖定原則
http://shaurong.blogspot.com/2023/05/sql-server-2019.html

[研究]SQL Server 2022資料庫預設帳號 sa 改名
http://shaurong.blogspot.com/2023/05/sql-server-2022-sa.html

[研究]SQL Server 2022預設sa和administrator帳號權限檢視
https://shaurong.blogspot.com/2023/05/sql-server-2022saadministrator.html

[研究]SQL Server 2022啟用資料庫引擎的加密連線
https://shaurong.blogspot.com/2023/05/sql-server-2022.html

[研究] SQL Server 2016使用 SSL 加密連線
http://shaurong.blogspot.com/2017/09/sql-server-2016-ssl.html

沒有留言:

張貼留言