私のアプリケーション用に新しいSQL Serverユーザーを作成する必要があります。それぞれのインストールでそれを実行するための努力を惜しまないために、私はMSBUILDスクリプトがそれを処理したいと思っています。私はビルドスクリプトの変数としてログインユーザとパスワードを持っています。ユーザーはデータリーダーのみでなければなりません。MSBUILDを使用してSQL Serverログインを作成する方法はどこにありますか?
これを簡単に行う方法はありますか?
私のアプリケーション用に新しいSQL Serverユーザーを作成する必要があります。それぞれのインストールでそれを実行するための努力を惜しまないために、私はMSBUILDスクリプトがそれを処理したいと思っています。私はビルドスクリプトの変数としてログインユーザとパスワードを持っています。ユーザーはデータリーダーのみでなければなりません。MSBUILDを使用してSQL Serverログインを作成する方法はどこにありますか?
これを簡単に行う方法はありますか?
中にパラメータを渡すあなたが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では、特定のユーザー名とパスワードを指定できます。
あなたは$(ユーザー名)があなたの変数となり、MSBuildの実行