我已经通过这个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,看看我是否可以在那里工作和SSMS。
所以现在我在appsettings.json文件中使用它:
{
"ConnectionStrings": {
"SqlExpressConnection": "Server=.\\SQLEXPRESS;Database=MvcMovieDb1;Integrated Security=True;MultipleActiveResultSets=true"
}
在StartUp.ConfigureServices()中,更改:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
到
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("SqlExpressConnection")));
然后在命令提示符下运行:
dotnet ef数据库更新
但现在我得到: &#34;在数据库&#39; master&#39;。
中拒绝CREATE DATABASE权限如何授予ef创建数据库的权限? 如果我使用CREATE权限创建登录名,是否有dotnet ef可以使用的登录/密码参数?
好吧,我似乎没有像我想的那样拥有数据库权限。
我刚刚测试了在SSMS中添加数据库,我似乎没有CREATE权限 &#34; CREATE DATABASE数据库&#39; master&#39;。
中的权限被拒绝我在计算机管理员登录帐户下的SSMS中。 我使用Windows身份验证启动SSMS。 所以顶部连接节点看起来像: FullComputerName \ SQLExpress(SQL Server 11.0.6020 - CompanyDomainName \ Samuel)。
Windows身份验证登录的格式为:CompanyDomainName \ Samuel。 我在计算机管理员 - 用户下看不到我的CompanyDomainName \ Samuel帐户。 不确定我是如何使用此帐户登录计算机的。 如何在安全登录下添加此帐户作为登录?
答案 0 :(得分:1)
您的本地Windows帐户CompanyDomainName\Samuel
是SQLExpress管理员。这意味着当您登录Windows时,您是SQLExpress的管理员。
Integrated security=true
用于通过Windows帐户连接到SQL Server,但它不起作用,因为IIS(或Kestrel或任何Web服务器)将使用不同的Windows用户帐户。
您有两种选择:
在Security/Logins
中添加您的网络服务器的Windows用户帐户,然后选中Windows authentication
或使用SQL Server authentication
创建新的登录信息,并更新连接字符串以使用它来代替
"Server=.\\SQLEXPRESS;Database=MvcMovieDb1;User Id=dbUserName;Password=thePassword"
(注意:如果您选择最后一个解决方案,如果您在源代码中存储密码,则应注意潜在的安全问题。Read this page for more information)
答案 1 :(得分:0)
我从来没有打算过,因为谁曾经制造过这台笔记本电脑并且已经安装了SQL Server(2012)。所以我安装了SQL Server Express Advances 2014和SSMS 2014。 现在,我可以直接在SSMS 2014中创建数据库。
在appsettings.json中我创建了第二个连接字符串并在Startup.cs中更新它以反映“SQLEXPRESS2014”conn字符串。
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MvcMovie-3005e0f3-42f4-4163-94cc-f794a05e8b91;Trusted_Connection=True;MultipleActiveResultSets=true",
"SqlExpressConnection": "Server=.\\SQLEXPRESS2014;Database=MvcMovie;Integrated Security=True;MultipleActiveResultSets=true"
}
然后我跑了
>dotnet ef database update
现在一切都对我好。