ローカルサービスアカウントで実行されているSQL Serverからドメインユーザーが所有するSSISパッケージを実行する


10

SQL Serverオブジェクトの転送タスクを含むSSISパッケージを実行したいのですが。関連するサーバーは同じドメイン上にありますが、SQL Serverサービスはローカルサービスアカウントで実行されています。したがって、環境は次のようになります。

ドメイン

サーバー1

  • ローカルアカウントで実行されているSQL Server
  • ファイルシステム:SSISパッケージ
  • SQL Serverエージェント:ジョブ

サーバー2

  • ローカルアカウントで実行されているSQL Server

両方のサーバーにログオンできるようにするために、サービスアカウントとして使用するドメインアカウントを作成しました。このドメインアカウントを使用してサーバー1にログオンし、ファイルシステムからパッケージを実行すると、すべての手順が成功します。しかし、SQL Serverにジョブを追加しようとすると、次のいずれかの問題が発生します。

状況1.ジョブの所有者:ローカルアカウント。ドメインアカウントのプロキシとしてSSISステップを実行します。ジョブの所有者をローカルアカウントに設定し、ジョブをドメインアカウントのプロキシとして実行すると、ジョブ自体は正常に実行されますが、パッケージは次のようなエラーをスローします

次のエラーで実行が失敗しました:「ディレクトリ 'LocalApplicationData'は存在しません。」

このエラーは、サーバー1でドメインユーザーの管理者権限を持つログインを作成することで修正できますが、これは明らかに望ましい解決策ではありません。SQL ServerエージェントまたはDTSグループのいずれかにアカウントを追加しても機能しません。

状況2.ジョブの所有者:ドメインアカウント。ドメインアカウントのプロキシとしてSSISステップを実行します。ジョブの所有者とステップの「ユーザーとして実行」の両方をドメインアカウントに設定すると、ジョブがまったく開始されず、次のエラーが発生します。

ジョブの所有者(ドメイン\ドメインユーザー)にJob nameサーバーアクセスがあるかどうかを判別できません(理由:Windows NTグループ/ユーザー 'ドメイン\ドメインユーザー'に関する情報を取得できませんでした。エラーコード0x5。[SQLSTATE 42000](エラー15404)) 。

最後のエラーは、SQL Serverがローカルアカウントで実行されており、ドメインアカウントの権限を確認できないためだと思います。

ジョブを実行させる正しい方法は何ですか?状況2は私にはきれいに感じられますが、SQL Serverがローカルアカウントで実行されているため、不可能に思えます。状況1でも機能しますが、ドメインユーザーにSQL Serverの管理者権限を与えることはできません。


更新:

@JonSeigelおよび@ Mr.Brownstone:

これは、権限が不足しているために問題が発生していると考えられます。ただし、エラーは存在しない 'LocalApplicationData'(アカウントごとに生成されるフォルダーの1つ)に関するものです。パッケージを実行する資格情報を使用してサーバーにログインし(これにより、プロファイルディレクトリを作成します)、プロファイルディレクトリのアクセス許可のいくつかの組み合わせを試しました。この特定のディレクトリに対するほとんどすべてのアクセス許可を手動で付与する場合でも、上記のエラーが発生します。

さらに調査を行っているときに、http: //www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441のフォーラムスレッドに遭遇しました。


SQLサービスにドメインアカウントを使用しない理由はありますか?
エリックヒギンズ

はい、しかしどの理由かわかりません(DTAPサイクルとドメインがどこでも利用できるわけではないと思います)。とにかく、それは私が変更することを許可されていない与えられた環境です。
vstrien

状況#1が答えのようです。あなたが受け取っているエラーメッセージはパッケージ内からのものだと思います。つまり、パッケージは実行中ですが、パッケージ内のタスクには、サービスアカウントが付与されているよりも多くの権限が必要です。アカウントを成功させるために、管理者レベルの権限をアカウントに付与する必要がない場合があります(代わりに詳細な権限を付与するか、権限を必要としないようにプロセスを変更してください)。
Jon Seigel

SQLログイン(SQL認証)をリモートSQLサーバー(サーバー2)に追加できますか?そのオプションがある場合、宛先に使用されるSSIS接続でSQLログインを使用できます。つまり、パッケージを暗号化するにはパスワードを使用する必要がありますが、問題は解決されます。
Roi Gavish

@Justicator:たぶん、最後の手段として。ただし、ドメインログインが可能な場合は常に、SQL認証を使用しないことを好みます。
vstrien 2012

回答:


5

私の個人的な意見では、オプション#1が進むべき道だということです。しかし、ドメインアカウントにローカル管理者アクセスを許可する必要はないようです。特定のフォルダやファイルへのアクセスが必要と思われるため、ドメインユーザーに、パッケージを正常に実行するために必要なリソースのみへのアクセスを許可できます。これは、ファイル/フォルダーのプロパティダイアログボックスから行うことができ、[セキュリティ]タブを選択します。親ディレクトリの権限を設定し、子のプロパティを上書きするように設定できるため、すべてのファイルとフォルダーに設定する必要はありません。

これがお役に立てば幸いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.