Вы неправильно вызываете процедуру. Кроме того, public это не Пользователь, а Роль.
Итак, если у нас есть Пользователь User1 с паролем Pass1, то для смены пароля на Pass2 необходимо вызвать (будучи залогиненым под User1):
EXECUTE master.dbo.sp_password @old = 'Pass1', @new = 'Pass2' |
|
Соответственно, преобразуйте это в вызов из Delphi...