もともと、私のアプリケーションはコマンドでアプリケーションの役割を変更できます。
exec sp_setapprole 'ARole', {ENCRYPT N'PASS01'}
そして、アプリケーションロールのパスワードを「PASS02」に変更したところ、
exec sp_setapprole 'ARole', {ENCRYPT N'PASS02'}
動作せず、間違ったパスワードを返します。
コードを次のように変更した後、動作することがわかりました
1) exec sp_setapprole 'ARole', 'PASS02'
-- or --
2) exec sp_setapprole 'ARole', 'PASS02', 'ODBC'
元のコードが機能している理由は何ですか? そして、そもそもパスワードはどのように設定されたのでしょうか?