これが私の問題です。私の会社には、DEV環境のSSASにキューブ、ディメンション(...)を作成する開発者のチームがあります(SSASDEVと呼びましょう)。この環境は、DEV内のSQL Serverデータベースにバインドされています(SQDEVと呼びましょう)。私の仕事は、彼らの仕事をDEV環境からPRO環境に展開することです。このPRO環境(SSASPRO)は、別のSQL Serverデータベース(SQPRO)に基づいています。
とりあえず、開発者チームはSSASでスクリプトを作成し、XMLAスクリプトを送信します。定義されているすべてのセキュリティルールと、このXMLAで指定されている接続文字列を変更する必要があります(セキュリティルールは、環境と接続文字列に応じて異なるロールに基づいているため、 SQL Serverデータベースの)。展開ごとに行うのは大変な作業なので、これを自動化したいと思います。
私が見つけた唯一の方法は
(1)-DEVキューブをスクリプト化し、XMLAをPROに適用します(現在行われていること)。
(2)-キューブを同期します(つまり、セキュリティルールの未処理、再適用、および接続文字列の変更)。
全世界で私だけがこの状況にいるとは思えない!誰かが私にヒントやヒントを持っていますか?別の最も簡単な方法が存在し、それを逃しましたか?私のインターン組織(環境ごとに異なるデータベース)はSSASにとって論理的ではありませんか?
SSAS 2008R2および2012を使用しています
ご回答ありがとうございます!
さまざまな環境間でSSASプロジェクトを私の場所に展開する方法について説明します。次の一連のPowershellスクリプトを使用します。
パート1:
パート2:
これらの手順はすべて、可能な限り自動的に行われ、開発者/ QA担当者の介入は最小限に抑えられます。ただし、心を安全に保つために、間に目玉を挿入します。それが最高だとは言いませんが、それは機能し、仕事を成し遂げます。最後のステップの前に、XMLAスクリプトを挿入して既存のロールを削除し、新しいロールを作成できると確信しています。また、PSスクリプトを変更して新しいSQLまたはXMLAスクリプトを実行するのは難しいことではありません。役割と権限はそれほど変化しないので、スクリプト化して再利用できると思います。
PS:これは、ドメインユーザーと固定サーバーのある環境です(共有、ドメインアカウント、およびそれらすべてを使用できます)。別の環境を使用している場合、それを実行するのはより困難な場合があります。
それは数年前ですが、これが私たちが以前の立場で働いていたものだと思います。
役割はあるが役割メンバーはないASデータベースから始めて、メンバーを追加するスクリプトを生成し、別のXMLファイルとして保存します。また、削除する必要のあるメンバーがある場合は、それも別のファイルとしてスクリプトを作成します。
ASデータベースを新しいインスタンスに移行する場合、これらの権限スクリプトは、メインデータベースの完了後に実行されます。それらをpowershellまたはSSISで実行して、デプロイメントの自動化に移行できます。
これをさらに自動化するには、個々の権限をスクリプト化し、ASデータベースと権限とスクリプトの場所の関係を含むSQLデータベーステーブルをいくつか作成します。次に、PowershellまたはSSISを使用して、展開プロセスの一部としてプログラムでASデータベースにアクセス許可を適用します。
要約すると、作成したロールは、すべての環境(およびTFS)で持続できます。これは、環境間で変更する必要があるロールのメンバーであり、スクリプトで処理できます。初期設定には多少の投資が必要ですが、完了するとかなりスムーズに動作します。