17

SSDT データベース プロジェクトにログインできるユーザーを作成しようとしています。ログインは、ターゲット サーバーに既に存在します。次の SQL を使用します。

CREATE USER [MyLogin]
        FOR LOGIN [MyLogin]
        WITH DEFAULT_SCHEMA = dbo

GO

エラーが発生します:

エラー 1 SQL71501: ユーザー: [MyLogin] には、ログイン [MyLogin] への未解決の参照があります。

2 つの解決策を見つけましたが、どちらも 2013 では機能しません。

1) ログインを参照するサーバー プロジェクトを作成します。これは、SSDT / VS2013 の現在のバージョンではオプションではありません

2) スキーマ チェックを無効にします。2013年にはオプションがありません(あったと思いますOptions -> Database Tools -> Schema Compare

4

2 に答える 2

34

実際には、標準の T-SQL 構文を使用して、SQL Server データベース プロジェクト内にサーバー レベルのログインを作成できます。

CREATE LOGIN [Login_Name] WITH PASSWORD = '<Password>';

: データベース プロジェクトを右クリックして [新しい項目の追加] を選択し、[SQL Server] > [セキュリティ] (テンプレート ダイアログ内) に移動して、[ログイン (SQL Server)] を選択することもできます。

これにより、SQL71501 エラーが解決され、(展開に SQLPackage.exe を使用していると仮定して) SQLPackage.exe は、展開と公開が行われる前に、セキュリティ オブジェクトをターゲット データベースと比較できるようになります。

それが役立つことを願っています:)

于 2014-02-11T03:30:57.173 に答える