Sql-Server

如何在 SQL Server 2016 Always On 可用性組中獲取鏡像端點中證書的證書到期日期?

  • May 25, 2020

我使用 Microsoft 說明創建了一個獨立於域的 2 節點 SQL Server 2016 Always On 可用性組:

https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/domain-independent-availability-groups?view=sql-server-ver15

其中一個步驟使用證書創建端點:

CREATE ENDPOINT DIAG_EP
STATE = STARTED
AS TCP (   
   LISTENER_PORT = 5022,
   LISTENER_IP = ALL
     )
FOR DATABASE_MIRRORING (
   AUTHENTICATION = CERTIFICATE InstanceX_Cert,
   ROLE = ALL
     )

集群正在工作,幾個月後我想檢查此證書的到期日期。所以我執行這個查詢:

select * from sys.certificates

此查詢返回空集。這不可能,我知道鏡像端點正在使用證書。然後我執行這個查詢來列出所有的鏡像端點:

select * from sys.database_mirroring_endpoints

實際上它在響應中說 connection_auth_desc = CERTIFICATE 和 certificate_id = XXX。所以它必須使用證書。響應中的所有列實際上都沒有說明哪個證書或到期日期是什麼。

是否有人對如何跟踪 SQL Server Always On 可用性組中鏡像端點中使用的證書並檢查其到期日期有任何指導?另外,我怎樣才能在將來更新此證書而不會導致集群停機?

任何幫助將不勝感激!

實例級證書儲存在主數據庫中

您需要將上下文設置為主數據庫,然後檢查證書:

use [master]
select * from sys.certificates

或者只是在單個命令中使用三部分名稱:

select * from [master].sys.certificates

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