2017-06-26 10 views
1

SQL接続文字列内から「execute as user」コマンドを実行する方法を探しています。私は変更できない外部ソースからのクエリと、すでにユーザーとして実行されているセキュリティ設定を持つデータベースを持っています。私が本当に変更できるのは接続文字列だけです。私は何度も探していて、検索に関連するものを見つけるのが難しいです。SQL接続文字列から実行する

接続文字列内で「execute as user」を実行できますか?

はいの場合はどうですか? SQL Serverの2016使用

- SP1を

編集:表中の ユーザーは、それらに関連付けられた役割の数を持っています。独自のロールの組み合わせごとにユーザーが作成されます(ログインできないため、そのユーザーとして接続してアクセスすることはできません)。そのユーザーには、ユーザーの役割に基づいて行レベルのセキュリティを適用するスキーマがあり、許可されているデータのみが表示されます。 "execute as user = [自動生成されたユーザー]"を使用すると、固有の権限スキーマを持つ適切なユーザーになりすまし、表示されるデータのみが返されます。ユーザーとの接続を行い、execute as文と同等の処理を行う必要がありますが、実際のクエリは変更できないため、接続文字列で処理する必要があります。

+2

偽装したいユーザー(接続文字列のユーザーIDとパスワード)として接続している可能性がありますか? –

+0

残念ながら、どちらもできません...偽装するユーザーはログインできないように設定されています –

+0

接続を確立できないユーザーを偽装していくつかのsqlを実行しますか?それはおそらく何かが正しくセットアップされていないように聞こえますか? –

答えて

0

ユーザーを偽装するために既に接続されている必要があるため、接続文字列でこれを行うことはできません。

接続文字列は、ユーザーがSQLインスタンスに接続(ログイン)できるため、ログインできないユーザーは使用できません。代わりに、ログイン権を持つユーザーとして接続し、次にEXECUTE AS USERを介してユーザーを偽装する必要があります。

関連する問題