2017-07-14 7 views
1

私のアプリケーション用に新しいSQL Serverユーザーを作成する必要があります。それぞれのインストールでそれを実行するための努力を惜しまないために、私はMSBUILDスクリプトがそれを処理したいと思っています。私はビルドスクリプトの変数としてログインユーザとパスワードを持っています。ユーザーはデータリーダーのみでなければなりません。MSBUILDを使用してSQL Serverログインを作成する方法はどこにありますか?

これを簡単に行う方法はありますか?

答えて

1

中にパラメータを渡すあなたがSQL Server Command Line Utilitiesの使用を作ることができ

create user $(username) 

を使用して、SQLユーザーを作成することができます(異なるバージョンがありますこのパッケージの中には、お使いのOSに合ったものを選択して、お使いのSQL Serverのバージョンと互換性があることを確認してください)。

sqlcmdユーティリティを使用すると、コマンドプロンプトでTransact-SQLステートメント、システムプロシージャ、およびスクリプトファイルを入力できます。

あなたは今、SQLスクリプトを作成することができます(例えばcreateuser.sql):

sqlcmd -v DatabaseName="MyDatabase" DatabaseUser="Pete" SqlLogin="John" -i "createuser.sql" -S "mymachine\mySqlInstance"

USE [$(DatabaseName)] 
GO 

-- If the user exists, drop it first 
IF EXISTS (select principal_id FROM sys.database_principals where [name] = '$(DatabaseUser)' AND type = 'U') 
BEGIN 
    DROP USER [$(DatabaseUser)] 
END 

-- Create it 
CREATE USER [$(DatabaseUser)] FOR LOGIN [$(SqlLogin)] 

-- And add it to the Role db_datareader 
ALTER ROLE db_datareader ADD MEMBER [$(DatabaseUser)] 

あなたは今ではのようなコマンドラインからこのスクリプトを呼び出すことができますをsqlcmdの使い方

MSBuildプロジェクトファイルをExec tasで作成することができますあなたのためにその文を呼び出しますkは:

<Exec Command="sqlcmd -v ..." ... > 
</Exec> 

のsqlcmdを実行しているユーザーがスクリプトのアクションを実行するために、SQL Serverの権限を持っている必要がありますのでご注意ください。 SqlCmdでは、特定のユーザー名とパスワードを指定できます。

0

あなたは$(ユーザー名)があなたの変数となり、MSBuildの実行

関連する問題