3
我對MS SQL沒有太多經驗,所以如果這是一個非常愚蠢的問題,我很抱歉 - 但我無法在Intenet上獲得任何有關它的真實信息。將SQL登錄作爲參數傳遞
所以,我只是想創建一個SQL登錄名和SQL用戶爲登錄名和它去像:
SqlCommand CreateDatabaseUser = new SqlCommand("CREATE LOGIN @NewUserLogin " +
"WITH PASSWORD = '@NewUserPassword' " +
"CREATE USER @NewUserLogin FOR LOGIN @NewUserLogin", AddUserConnection);
CreateDatabaseUser.Parameters.AddWithValue("@NewUserLogin", NewUserLoginTextbox.Text);
CreateDatabaseUser.Parameters.AddWithValue("@NewUserPassword", PasswordTextbox.Text);
AddUserConnection.Open();
CreateDatabaseUser.ExecuteNonQuery();
我得到一個錯誤說Incorrect syntax near '@NewUserLogin'
,但如果我這樣做不正確的,這樣的不安全的方式:
"CREATE LOGIN " + NewUserLoginTextbox.Text +
" WITH PASSWORD = '" + PasswordTextbox.Text + "'" +
" CREATE USER " + NewUserLoginTextbox.Text + " FOR LOGIN " + NewUserLoginTextbox.Text
那麼它工作!
所以,我想弄清楚我在那裏做什麼工作。提前致謝!
非常感謝您的快速回復!您能否告訴我,處理DDL語句以確保注射安全的正確方法是什麼? – Stutz
@Stutz爲了避免SQL注入攻擊,您應該在將用戶名和密碼放入SQL之前對其進行非常嚴格的驗證,或者在白名單中添加一組有效的用戶名和密碼。 –
再次感謝!你非常樂於助人! :)你,我希望有一些內置的工具來驗證它在C#!Welp,猜我必須手動做! – Stutz