質問: 私はこのASP.Net MVCコアチュートリアルをhttps://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sqlに行ってきました。そして、私はdotnetの移行を使用してappsettings.jsonファイルのこの接続文字列を使ってlocalDbに対してデータベースを作成することができます: ``` { "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MvcMovie-3005e0f3-42f4-4163-94cc-f794a05e8b91;Trusted_Connection=True;MultipleActiveResultSets=true" } ``` 今私はSQL Server Expressを使ってそこから作業できるかどうかを知りたいと思います。 だから今私はappsettings.jsonファイルでこれを使用します: ``` { "ConnectionStrings": { "SqlExpressConnection": "Server=.\\SQLEXPRESS;Database=MvcMovieDb1;Integrated Security=True;MultipleActiveResultSets=true" } ``` StartUp.ConfigureServices()で、次のように変更します。 ``` services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); ``` に ``` services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString("SqlExpressConnection"))); ``` コマンドプロンプトで次のコマンドを実行します。 > dotnet efデータベースの更新 > > しかし、今私は: "CREATE DATABASE権限がデータベース 'master'で拒否されました。 efにデータベースを作成する権限を与えるにはどうすればよいですか? CREATE権限を使ってログインを作成すると、dotnet efが使用できるログイン/パスワードパラメータはありますか? --- まあ、思ったように私はDBパーミッションを持っていないようです。 私はSSMSの中からdbを追加するテストをしましたが、CREATE権限を持っていないようです。 "CREATE DATABASE権限がデータベース 'master'で拒否されました。 私は自分のコンピュータ管理者ログインアカウントのSSMSにいます。そして私はWindows認証を使用してSSMSを起動します。したがって、一番上の接続ノードは、FullComputerName \ SQLExpress(SQL Server 11.0.6020 - CompanyDomainName \ Samuel)のようになります。 Windows認証ログインは、CompanyDomainName \ Samuelという形式です。私は、コンピュータマネージャ - ユーザの下に自分のCompanyDomainName \ Samuelアカウントが表示されません。このアカウントでどのようにコンピュータにログインできるかわかりません。このアカウントをセキュリティログインのログインとして追加するにはどうすればよいですか?
回答: ローカルのWindowsアカウント`CompanyDomainName\Samuel`がSQLExpress管理者です。 Windowsにログオンしているときは、SQLExpressの管理者です。 `Integrated security=true`は、WindowsアカウントでSQL Serverに接続するために使用されますが、IIS(またはKestrelまたは任意のWebサーバー)が別のWindowsユーザーアカウントを使用するため、機能しません。 2つの選択肢があります。 * WebサーバーのWindowsユーザーアカウントを`Security/Logins`に追加し、 `Windows authentication`を確認し`Windows authentication` !ここに画像の説明を入力してください * または、 `SQL Server authentication`で新しいログインを作成し、代わりにそれを使用するように接続文字列を更新します。 `"Server=.\\SQLEXPRESS;Database=MvcMovieDb1;User Id=dbUserName;Password=thePassword"` (注:この最後の解決策を選択した場合、ソースコードにパスワードを格納するとセキュリティ上の問題が発生する可能性があることに注意する必要があります。 詳細については、このページを読んでください )