2014-01-22 50 views
1

在Microsoft SQL Server Management Studio(請參閱圖像示例)中更改用戶密碼(在表中)的最佳方法是什麼?在Microsoft SQL Server Management Studio中更改用戶密碼

我知道你可以運行一個查詢,但我不知道如何去做。另外,你真的可以創建一個MD5hash生成的密碼,並粘貼/輸入到密碼字段?

enter image description here

+0

可能的候選人[服務器故障](http://serverfault.com/) – Zane

+1

什麼類型的應用程序創建這些?它是您編寫或購買產品的定製應用程序嗎? – 2014-01-22 14:15:00

回答

0

假設用戶是唯一的,只是搜索在WHERE子句的用戶名。您可以使用HashBytes函數生成MD5哈希值:

SELECT HashBytes('MD5', 'stringToHashGoesHere')

然後,您可以插入到MD5列

+0

HashBytes方法似乎沒有工作。它用下面的值填充該字段:쀙輦莛跉鈥짿㣑。此外,使用我的文本密碼哈希,不驗證...(因爲中國...字符串假設看起來像這樣:d131dd02c5e6eec4 693d9a0698aff95c 2fcab58712467eab 4004583eb8fb7f89 – DextrousDave

+0

什麼是你的數據庫的列類型?如果它是nvarchar,那麼你會得到「中文喜歡」的字符,因爲你將HASHBYTES返回的varbinary值插入到nvarchar列中,所以SQL Server試圖將這些字節解釋爲Unicode代碼點(字符) 爲了能夠將返回的值插入到表中,您需要1)對返回的結果執行'CONVERT'或2)將列類型更改爲varbinary。 – TTeeple

+0

[樣本](http://puu.sh/6vvi7.png)。 – TTeeple

0

您需要更新特定的用戶ID的密碼字段。很難看到你的實際表和列名,所以我只是用通用名來代替。請注意,HASHBYTES將返回值VARBINARY

DECLARE @MyPassword VARBINARY(250) = HASHBYTES('MD5','MyNewPassword') 
UPDATE MyTable 
SET PasswordField = @MyPassword 
Where UserId = 'MyUser' 
+0

謝謝。我已經這樣做了,但它不起作用。表中更新的值如下所示:쀙輦莛跉鈥짿㣑。然後用正確的方式使用MD5?那麼沒有其他類型的加密方法可以使用嗎? – DextrousDave

+0

它可能被存儲爲「VARCHAR」類型而不是「VARBINARY」,在這種情況下,嘗試使用在線網站,如http://www.md5hashgenerator.com/index.php,然後使用輸出更新密碼字段 – 2014-01-28 13:07:42

相關問題