我尝试使用C#测试连接到本地SQL Server数据库。此数据库已成功共享,我可以使用SQLCMD
使用多个用户连接到该数据库。这包括所需的用户,READ。
现在我要做的是冒充READ然后用C#连接到数据库。我正在使用已经证明有效的标准模拟机制。
当我冒充READ时,我得到例外:
测试方法
System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。在LocalDB实例API方法调用内发生意外错误。请参阅Windows应用程序事件日志以获取错误详细信息。)
我检查并仔细检查了连接字符串。我的主用户帐户ADMIN
(谁拥有共享)使用相同的字符串连接到数据库就好了。
该异常指出应用程序事件日志将包含更多信息。他们只注意到" ACCESS IS DENIED
"错误5。
我已经与execute和其他人一起提供了连接权限。我尝试将sysadmin提供给整个服务器到用户帐户,但是,当我冒充时,它无法连接。
注意:对于假冒我正在使用"互动"级别冒充。
我有什么遗失的东西吗?我是否需要为本地系统中的凭据授予特定权限? Localdb是否可以使用本机SQL Server客户端进行正确的身份验证?为什么我可以像其他用户一样运行流程时连接,只是不使用进程内模拟?