sql-server - SQL Server Express 2016 用户在 SSMS 中工作,但不能通过内部 IP 从应用程序中工作
问题描述
我在一个实例上使用带有 SQL Server Express 2016 数据库的 Google Compute 实例,在另一个实例上使用应用程序。数据库设置为使用 SQL Server 或 Windows 身份验证。
应用程序使用内部 IP 地址连接到数据库。只要 SQL Server 用户是 一切都很好sa
,但是当我将其更改为我设置的另一个用户时,它不会连接并给出此错误:
执行命令定义时发生错误。有关详细信息,请参阅内部异常。
我查看了应用程序日志,它给出了更长的错误但没有帮助(至少对我而言)。但是一旦我将连接字符串改回sa
,一切都很好。
我可以使用新登录名通过 SSMS 访问数据库,所以我知道它是合法的,至少在本地是这样。我已经多次重新启动数据库服务器。显然,我缺少一些东西;只是不知道它是什么。
要点:这是日志:错误 [2020-06-29 22:39:35,828] [XXXXXXXXXXXX.Controllers.UserController.Authenticate] 无法使用消息登录 - 执行命令定义时发生错误。有关详细信息,请参阅内部异常。堆栈跟踪:在 System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,CommandBehavior 行为)在 System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext 上下文,ObjectParameterCollection parameterValues) 在 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func 1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) at System.Data.Entity.Core.Objects.ObjectQuery
1.<>c__DisplayClass7.b__5() 在 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func 1 operation) at System.Data.Entity.Core.Objects.ObjectQuery
1.GetResults (可以为空1 forMergeOption) at System.Data.Entity.Core.Objects.ObjectQuery
1.<System.Collections.Generic.IEnumerable.GetEnumerator>b__0() at System.Data.Entity.Internal.LazyEnumerator 1.MoveNext() at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable
1 source) at XXXXXXXXXXXX.Controllers.UserController.AuthenticateUser(String userName, String password) at XXXXXXXXXXXX.Controllers.UserController .Authenticate(String userName, String password, String returnUrl) XXXXXXXXXXXX.Controllers.UserController.Authenticate(System.String userName, System.String password, System.String returnUrl)
你是对的,这是一个权限问题。如果我更改用户并授予它系统管理员权限,它会很好用;但是我希望拨出此 SQL 登录的权限。这不可能/不可取吗?
谢谢,莎莉
解决方案
推荐阅读
- c# - 在 backgroundWorker 中使用 await Task 正在将我的状态更改为完成
- sql - 如何创建不重复的身份证号码
- c# - ASP.NET Core 3.1 Web API - 使用可为空的参数创建路由
- sql - SQL Server - 插入,返回 id 并更新
- linux - 路由器或 linux 内核是否更改数据包的 tcp 标头和 ip 标头
- python - 将具有“null”值的 MS SQL 表导出到 CSV
- sql - 我如何在 Oracle 的 SQL Developer 20.2 上为 11g 数据库注册小时数?
- java - CipherOutputStream 在接收消息时导致 IllegalBlockSizeException
- sql - 使用左连接运行 MS Access 删除查询时出错
- mysql - SQL插入避免从查询表中重复+避免在更新表中插入重复