因此,我正在尝试将架构更改迁移到我的生产系统。为此,我想首先在生产数据库的本地备份上测试架构更改,因此我从服务器下载了最新的备份,将其还原到本地主机的 Sql Express 2008 R2 设置,并应用了所有架构更改。
现在我想快速运行已应用架构更改的系统以进行快速验证。但是,我的开发环境设置为使用本地 Windows 登录名登录 Sql Express,虽然我可以针对数据库备份运行查询,但当我尝试使用我的 Asp.NET 应用程序登录数据库时,我得到了Login Failed For User 'Matttop\KallDrexx'
我的连接字符串是,<add name="MyJobLeadsDbContext" connectionString="Data Source=localhost\sqlexpress;Initial Catalog=myjobleads_prod;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />
并且我使用备份数据库所做的唯一更改是更改连接字符串中的数据库名称。
为什么我的 Asp.Net 应用程序无法访问备份数据库以及如何授予本地用户访问权限?
答案1
看起来你需要sp_change_users_login 'update_one', '<db_user>', '<server_login'
。
即使本地实例上的登录名可能与服务器上的登录名相同,本地登录名也可能sid
与服务器上的登录名不同。此过程将数据库用户重新链接到服务器登录名。