Sql-Server-2008

tsql 查找映射到證書的使用者和數據庫級別權限

  • April 16, 2011

在 SQL 2005 及更高版本上,如何找到映射到證書的使用者和數據庫級別權限?

故事是這樣的:我將一個數據庫從 SQL 2005 複製到 SQL 2008。它在數據庫中有一個證書,該證書通過備份和恢復複製過來(據我所知)。我在源伺服器和目標伺服器上都沒有看到此證書的任何伺服器級別憑據,並且可以使用以下程式碼在使用者數據庫中看到它:

select * from sys.certificates

我在伺服器上找不到與此證書對應的證書文件。我對此表示懷疑:

  • 證書是否正確複製?
  • 登錄是否自動映射?
  • 它是否失去了對數據庫對象的任何權限?
  • 如何找到與此證書對應的文件?

我只想確保如果使用證書授予登錄權限,那麼我應該能夠查看並保留權限。數據庫沒有加密數據。

提前致謝..

您可以使用此表查找映射到證書的使用者

select * from sys.database_principals where type = 'C'

如果主體是 SQL 使用者,則可能您必須重新映射使用者,因為當您將使用者和登錄名從一個 sql 伺服器遷移到另一個時,不會重新生成 SID,並且在新伺服器上可能會有所不同。所以使用者上的所有連結都是無效的。

希望這對您有所幫助。

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