0

SQL Server データベースのユーザーを作成しました。無事作成されました。

私の問題は、次のコードを実行してアプリケーションを介してアクセスしているときに、指定したユーザーに切り替わらないことです

exec as user='myuser'
ALTER USER myuser WITH DEFAULT_SCHEMA=maindb
EXEC sp_addrolemember N'db_owner', N'myuser'

そして、私はクエリを次のように実行しました

DbCommand command = ds.CreateCommand();
command.CommandText = "exec as user='myuser'";
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();

C# コードから

貴重なご意見・ご感想お待ちしております

4

2 に答える 2

0

はい、これは予想されます。接続文字列には、サーバーへの接続に必要な資格情報が含まれています。通常、リソースを最適化し、接続プールなどを利用するために、アプリケーションとデータベースの間に単一の接続文字列があります。

ユーザーごとにシステム内の権限が異なる場合がありますが、これは接続文字列ではなく承認によって処理できます。

于 2012-11-28T14:00:17.187 に答える
0

EXECUTE AS句

EXECUTE AS 句で指定されたユーザー名またはログイン名は、それぞれ sys.database_principals または sys.server_principals のプリンシパルとして存在する必要があります。存在しない場合、モジュールの作成または変更操作は失敗します。さらに、モジュールを作成または変更するユーザーは、プリンシパルに対する IMPERSONATE 権限を持っている必要があります。

その条件を満たしていますか?

于 2012-11-28T16:18:24.463 に答える