サブスクリプション設定とファイル共有アカウント (レポート サーバーの構成マネージャー)
構成マネージャーの [サブスクリプションの設定] Reporting Services ページを使用すると、ネイティブ モードのレポート サーバーとファイル共有のサブスクリプションのファイル共有アカウントを構成できます。 ファイル共有アカウントでは、複数のサブスクリプションで 1 つの資格情報のセットを使用し、ファイル共有にレポートを配信することができます。 資格情報の変更が必要なときは、ファイル共有アカウントの変更を構成します。個々のサブスクリプションは更新しません。
Reporting Services のファイル共有サブスクリプションには、2 つのワークフローがあります。
SQL Server 2016 (13.x) リリースから、 Reporting Services 管理者が構成した 1 つのファイル共有アカウントから、1 つ以上 (多数も可能) のサブスクリプションを使用することが可能になりました。 [ファイル共有アカウントの指定] を構成し、個々のサブスクリプションの構成ページで、ユーザーが [ファイル共有アカウントを使用] を選択します。
個々のサブスクリプションに、宛先のファイル共有の資格情報を具体的に構成します。
この 2 つの方法を組み合わせて、一部のファイル共有サブスクリプションでは管理者が構成したファイル共有アカウントを使用し、他のサブスクリプションでは特定の資格情報を使用することもできます。
適用対象: Reporting Services ネイティブ モード。
[ファイル共有アカウントの指定]
このオプションが選択されている場合、レポート サーバーからファイル共有にアクセスするために使用するアカウントを提供できます。 ファイル共有アカウントを構成すると、ファイル共有にレポートを配信するよう構成されているすべてのサブスクリプションから、すべてのユーザーがアカウントを選択できます。 このオプションが選択されていない場合、どのサブスクリプションでもファイル共有アカウントを使用 できません 。
ファイル共有アカウントとして構成するアカウントには、ファイル共有の配信にユーザーが使用するすべてのファイル共有への読み取りおよび書き込みアクセス許可があることを確認する必要があることに注意してください。
次は、ファイル共有の配信が構成されているサブスクリプションでユーザーに表示されるものの画像です。 ファイル共有アカウントが構成されていない場合、 [ファイル共有アカウントを使用] は無効です。
権限の昇格や昇格された権限の回避
重要
Reporting Services サービス アカウントはサブスクリプションの配信を制御したり、ファイル共有サブスクリプションに使用するアカウントと通信したりします。 Windows のセキュリティ機能では、1) Reporting Services サービス アカウントと 2) ファイル共有アカウントに使用されるアカウントの組み合わせを制限します。 たとえば、ビルトイン オペレーティング システム アカウントが、ファイル共有アカウントに使用される場合、 Reporting Services サービス アカウントは偽装アクセス許可を持つ別のサービス アカウントである必要があります。 ファイル共有アカウントとパスワードが明示的に構成されている場合、ファイル共有アカウントには、Reporting Services サービスを実行しているコンピューターに ([ローカル ログオンを許可する] を使用して) ログオンする権限が必要です。 ファイル共有アカウントに必要なアクセス許可がない場合、次のようなエラー メッセージでファイル共有アカウントを使用しているサブスクリプションは失敗します。
"Failure writing file {file} : An impersonation error occurred using the security context of the current user."
ファイル共有アカウントの使用の監査を実行する PowerShell のサンプル
次の Windows PowerShell スクリプトを実行すると、 Reporting Services ファイル共有アカウント を使用するよう構成されているのサブスクリプションがすべて列挙されます。 レポート サーバーに適切した値に、 SERVERNAME
を更新します。
# get all file share subscriptions using the default file share account
$extensionNameMatch = "Report Server FileShare"
$extensionSettingMatch = "DEFAULTCREDENTIALS"
$valueMatch = "True"
# filter for subscriptions that have a given extension setting
filter script:extensionSettingFilter
{
# subscription must match the extension name
if($_.DeliverySettings.Extension -eq $extensionNameMatch)
{
# locate the extension parameter of interest
ForEach($extensionParameter in $_.DeliverySettings.ParameterValues)
{
# if the setting has the desired value, return the subscription
if($extensionParameter.Name -eq $extensionSettingMatch -and $extensionParameter.Value -eq $valueMatch)
{
$_
break
}
}
}
}
$rs2010 = New-WebServiceProxy -Uri "https:// SERVERNAME/ReportServer/ReportService2010.asmx" -Namespace SSRS.ReportingService2010 -UseDefaultCredential;
$subscriptions = $rs2010.ListSubscriptions("/");
Write-Host "----- File share subscriptions using the default file share account ----";
Write-Host "-------------------------------------------------------------------------- ";
$subscriptions | extensionSettingFilter | select report, owner, status, lastexecuted, description, subscriptionid | format-table -auto
スクリプトの出力は、次のようになります。
----- File share subscriptions using the default file share account ----
-----------------------------------------------------------------------------------------------------
Report Owner Status LastExecuted SubscriptionID
------------------------ -------------- -------- -------------------- ------------------------------------
Aworks_sales_by_territory DOMAIN\UserName Disabled 10/5/2014 1:04:04 PM e843bc2b-023e-45a3-ba23-22f9dc9a0934