SQL Server on Linux 用に Power BI Report Server カタログ データベースを構成する
適用対象: SQL Server 2019 (15.x) 以降 - Linux SQL Server Reporting Services (2019 以降)
この記事では、SQL Server on Linux 用の Power BI Report Server (PBIRS) カタログ データベースをインストールして構成する方法について説明します。
前提条件
この記事では、例でドメイン CORPNET.CONTOSO.COM
と次の構成を使用します。
構成するマシン
Machine | オペレーティング システム | 詳細 |
---|---|---|
Windows ドメイン コントローラー | Windows Server 2019 または Windows Server 2022 | |
レポートの開発とデプロイ (WIN19 ) |
Visual Studio 2019 を実行している Windows Server 2019 | - レポートの開発とデプロイ - 要求ドリブンまたはスケジュールされたレポート出力のリポジトリとして機能するファイル共有サービス |
SQL Server Reporting Services (WIN22 ) |
サポートされているバージョンの Power BI Report Server (PBIRS) 1 を実行している Windows Server 2022 | |
開発者用マシン | SQL Server Management Studio (SSMS) を実行している Windows 11 クライアント | |
SQL Server 2019 (rhel8test ) |
最新の CU で SQL Server 2019 (15.x) を実行している Red Hat Enterprise Linux (RHEL) 8.x Server |
アカウントの構成
アカウント名 | 詳細 |
---|---|
CORPNET\cluadmin |
グローバル ユーザー アカウント ドメイン コントローラーを除くすべての Windows サーバー上のローカル 管理者アカウント。 |
CORPNET\pbirsservice |
PBIRS サービス アカウント |
CORPNET\linuxservice |
SQL Server サービス アカウント (SQL Server on Linux 環境専用に作成されたもの) |
CORPNET\reportuser |
PBIRS の通常のユーザーをシミュレートするために使用されるグローバル ユーザー アカウント |
この例のシナリオでは、Kerberos の委任を正しく機能させるために、個別のサーバーと個別のアカウントを使用します (つまり、ダブルホップ シナリオを処理)。
SQL Server on Linux の構成
レポート サーバー カタログ データベースをホストするバックエンドとして SQL Server on Linux を使用するための PBIRS の構成 (または再構成) に進む前に、SQL Server on Linux インスタンスがドメインに参加していることを確認します。
adutil をインストールして構成し、「チュートリアル: adutil を使用して SQL Server on Linux で Active Directory 認証を構成する」の手順に従って、ドメインに参加することができます。
Note
RHEL 8 の特定のパッケージについては、「SSSD を使用した RHEL システムの AD への直接接続」を参照してください。
SQL Server サービス プリンシパル名 (SPN)
PBIRS をインストールして構成する前に、CORPNET
ドメイン で必要な SPN を構成する必要があります。 この場合はドメイン管理権限を持つユーザーを使用できますが、SPN を作成するのに十分な権限を持つユーザーであれば十分です。 SPN の作成後、Kerberos の制約付き委任を使用するようにアカウントを構成する必要があります。
このシナリオに必要な最小限の SPN を次に示します。
管理コマンド プロンプトを使用して、SQL Server on Linux サービス アカウントの SPN を作成します。 このインスタンスでは、既定のポート 1433 が使用されています。
setspn -S MSSQLSvc/rhel8test:1433 CORPNET\linuxservice setspn -S MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433 CORPNET\linuxservice
次の 2 つの SPN は、Power BI Report Server サービス アカウント用です。
setspn -S HTTP/WIN22.CORPNET.CONTOSO.COM CORPNET\pbirsservice setspn -S HTTP/WIN22 CORPNET\pbirsservice
Kerberos チケットを転送するための Kerberos 要件に対処するために、制約付き委任実装内での動作時に、RFC 4120 で指定されている MIT Kerberos 標準へのマイクロソフトの拡張機能を使用して委任を構成し、プロキシに対するユーザー用サービス (S4U2proxy) を使用します。 このメカニズムにより、PBIRS サービスと SQL Server サービスは、ユーザーに代わって他の指定されたサービスへのサービス チケットを取得できます。
たとえば、レポートを表示するために reportuser
が PBIRS サーバーの Web インターフェイスで認証を行うと、レポートが実行され、SQL Server テーブルなどのデータ ソースのデータにアクセスする必要があります。 SQL Server サービスは、PBIRS サーバーへの認証プロセス中に付与された reportuser
Kerberos サービス チケットを取得する必要があります。 S4U2proxy 拡張機能は、ユーザーの TGT (Ticket Granting Ticket) またはユーザーのセッション キーを転送する必要なく、必要な資格情報を渡すために必要なプロトコル切り替えを提供します。
これを実現するには、PBIRS サービス アカウント (この例では pbirsservice
) と SQL Server サービス アカウント (この例では linuxservice
) に、ドメインで委任に対する信頼された認証の権限を付与する必要があります。 この権限を付与する方法は複数あります (ADSI Edit、Computer and Users UI など)。 この例では、管理者権限の PowerShell コマンドを使用します。
SQL Server サービス アカウントを取得し、委任を許可するように設定します。 この手順では、Kerberos の委任だけでなく、アカウントの S4U2proxy (プロトコル切り替え用) の委任も有効になります。 最後の 2 つのコマンドレットは、SQL Server インスタンスの SPN であるドメイン内の特定のリソースに委任権限を適用します。
Get-ADUser -Identity linuxservice | Set-ADAccountControl -TrustedToAuthForDelegation $True Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')} Set-ADUser -Identity linuxservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')}
Power BI Report Server サービス アカウントを取得し、委任を許可するように設定します。 この手順では、Kerberos の委任だけでなく、アカウントの S4U2proxy (プロトコル切り替え用) の委任も有効になります。 最後の 2 つのコマンドレットは、SQL Server と PBIRS サーバーの SPN であるドメイン内の特定のリソースに委任権限を適用します。
Get-ADUser -Identity pbirsservice | Set-ADAccountControl -TrustedToAuthForDelegation $True Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test.CORPNET.CONTOSO.COM:1433')} Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('MSSQLSvc/rhel8test:1433')} Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22.CORPNET.CONTOSO.COM')} Set-ADUser -Identity pbirsservice -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/Win22')}
Power BI Report Server (PBIRS)
PBIRS は構成限定モードでインストールする必要があります。
PBIRS をインストールした直後に、Kerberos 認証をサポートするように PBIRS を構成する必要があります。 PBIRS は、既定では NTLM 認証のみをサポートします。 インストール プロセスでは、PBIRS 構成プロセスを完了する前に、UI またはコマンド ラインでいずれかの PBIRS 構成ファイルを更新する必要があります。 既存の PBIRS インストールを使用する場合でも、編集を実行する必要があり、PBIRS サービスは再起動して有効にする必要があります。 構成ファイルは rsreportserver.config
です。 PBIRS がインストールされたパスにあります。 たとえば、PBIRS の既定のインストールでは、ファイルは次の場所にあります。
C:\Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer
この XML ファイルは、任意のテキスト エディターで編集できます。 編集する前に、忘れずにファイルのコピーを作成してください。 ファイルを開いたら、XML ドキュメント内で AuthenticationTypes
タグを検索し、RSWindowsNTLM
属性の前に RSWindowsNegotiate
属性と RSWindowsKerberos
属性を追加します。 次に例を示します。
<Authentication>
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsKerberos/>
<RSWindowsNTLM/>
</AuthenticationTypes>
SQL Server on Linux では SQL 認証と Kerberos 認証のみがサポートされているため、この手順が必要です。
Note
RSWindowsKerberos
属性を入れるだけで済みますが、Windows と Linux の SQL Server インスタンスの組み合わせをサポートするサーバーのフリート全体で PBIRS 構成ファイルを標準化する場合は、RSWindowsNegotiate
を使用すると便利です。
PBIRS UI の構成
構成ファイルの編集が完了した後に PBIRS サービスが再起動されたら、ドメイン ベースのサービス アカウントの設定や Linux インスタンス上のリモート SQL Server への接続など、残りの PBIRS 構成オプションに進むことができます。
PBIRS サービス アカウントは、適切なアクセス許可を持つ SQL Server インスタンス内に表示されます。 このアクセス許可は、SQL Server Management Studio (SSMS) で確認できます。 オブジェクト エクスプローラーで、[セキュリティ] > [ログイン] に移動し、CORPNET\pbirsservice
アカウントを右クリックして [プロパティ] を選択します。 アクセス許可は、[ユーザー マッピング] ページに表示されます。
最後に、テスト目的で SQL Server にログインとして reportuser
を追加できます。 この場合、簡単なボタンを使用し、2 つのユーザー データベース AdventureWorks
および AdventureWorksDW
内の db_datareader 役割にユーザーを追加しました。
レポートのデプロイ後
レポートのデプロイ後にレポートのサブスクリプションを設定する必要がある場合は、PBIRS データ ソースに埋め込み資格情報を構成することをお勧めします。 レポート表示するユーザーの偽装オプションで構成された埋め込み資格情報を使用する場合を除き、すべての資格情報オプションが正しく機能します。 偽装がさらに困難になる SQL Server on Linux 実装内の制限のため、Windows 資格情報を使用する場合、この手順はうまくいきません。