2016-02-01 78 views
2

我有一個包含數據庫的用戶僅在數據庫中進行身份驗證(即SQL用戶與密碼)。我期望做的是「不承認」數據庫。在我可以將數據庫更改爲包含'NONE'之前,我必須刪除所有包含的用戶。我真正想要做的是爲保留相同密碼的用戶創建一個SQL登錄名。SQL Server包含的數據庫 - 獲取密碼哈希

通過服務器登錄,我可以使用LOGINPROPERTY('myusername','PasswordHash')來獲取密碼哈希。對於有密碼的SQL用戶(一個包含用戶),這將返回null。我在哪裏可以獲得包含用戶的密碼哈希值?

+0

把sql服務器和你真正的問題放在谷歌的返回裏可能會有很好的效果。 https://www.google.com/search?q=sql+server+password+hash+for+a+contained+user&ie=utf-8&oe=utf-8 –

回答

0

您是否試過sp_help_revlogin存儲過程?

+1

此存儲過程未找到登錄名。原因是包含的用戶沒有在實例上登錄,因此不在sys.server_principals中。 – PScal

1

本文有答案http://sqlblog.com/blogs/argenis_fernandez/archive/2014/07/28/scripting-out-contained-database-users.aspx

該文章指出對於包含的數據庫的用戶,有(目前)沒有獲得SID或密碼散列值,而無需連接至DAC(專用管理員連接)的方法。一旦建立了DAC連接,下面的查詢會給你的密碼哈希:

從sys.sysowners 選擇密碼 其中name =「ContainedUser」

有關如何連接獲得與SSMS一個DAC信息,請參閱https://technet.microsoft.com/en-us/library/ms178068(v=sql.105).aspx

+0

我只是在找這個..給我一些時間,謝謝。 –