2

3 つのスキーマを持つデータベースを配置しました。[データベース ユーザー] の下で、接続しているユーザーの所有スキーマとして 3 つのスキーマにチェックを入れました (当時は良いアイデアだと思いました)。

ただし、これにより、問題の db ユーザーを、同じ 3 つのスキーマ (dbo ではない) の下にあるストアド プロシージャのアクセス許可に追加することができなくなっているようです。db ユーザーを選択し、[execute] を選択して [OK] をクリックします。戻ると、許可がなくなりました。

Database User (General) の下の各目盛りがグレー表示されているので、データベースを台無しにしたと確信しています。

グレーアウトされたスキーマ

顧客のパスワードも暗号化する INSERT ストアド プロシージャに顧客データを渡そうとするまで、ASP.Net サイトの開発中にアクセス許可に問題はありませんでした。SP が呼び出されると、次のエラーが発生します。

対称キー 'myKey' が見つかりません。存在しないか、権限がないためです。

SSMSでSPを完全に実行でき、パスワードは正常に暗号化されています。

アクセス許可を提供していない場所はどこですか? グレー表示されたスキーマが問題ですか? それとも、これは ASP.Net c# の問題ですか?

4

1 に答える 1

1

EXECUTE ASを使用して、暗号化キーを開く権限を持つdbユーザーへのアクセス許可を変更する必要があります。

EXECUTE AS USER ='ASPUser'を使用した後にSPを実行しようとすると、同じ問題が発生するはずです。

これは、セキュリティEXECUTE ASとSQLインジェクションの詳細、 およびプロシージャとEXECUTEASUSERのEXECUTEASに関するMSDNエントリのビデオへのリンクです。

于 2011-07-17T22:35:39.233 に答える