Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于登录失败,无法打开数据库_C#_Sql Server - Fatal编程技术网

C# 由于登录失败,无法打开数据库

C# 由于登录失败,无法打开数据库,c#,sql-server,C#,Sql Server,我正在尝试将本地sql server数据库添加到我的项目中以用于部署。我在VisualStudio中添加了一个现有的SQLServer.mdf文件作为本地数据库。我可以在VisualStudio中查询数据库,查看数据并将数据添加到我的表中。我将连接字符串从“属性”菜单复制并粘贴到我的代码中。请参阅下面的连接字符串。注释掉的字符串适用于外部sql server数据库 // return "Data Source=(local)\\SQLEXPRESS2;Initial Catalog=" + mC

我正在尝试将本地sql server数据库添加到我的项目中以用于部署。我在VisualStudio中添加了一个现有的SQLServer.mdf文件作为本地数据库。我可以在VisualStudio中查询数据库,查看数据并将数据添加到我的表中。我将连接字符串从“属性”菜单复制并粘贴到我的代码中。请参阅下面的连接字符串。注释掉的字符串适用于外部sql server数据库

// return "Data Source=(local)\\SQLEXPRESS2;Initial Catalog=" + mCatalog + ";Integrated Security=True;Connect Timeout=30;MultipleActiveResultSets=False;Context Connection=False";
return "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=" + mCatalog + ";Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
我看到的错误消息是:无法打开登录请求的数据库myDatabase。用户“RYANPC\ryan”登录失败

但是,当我查看所附数据库的属性时,我可以在登录安全性下看到“RYANPC\ryan”

我尝试将以下内容添加到连接字符串中,但仍然没有成功:User ID=RYANPC\ryan;pwd=mypassword


我完全被卡住了。

登录只是拼图的一部分

您还应该在数据库中创建角色和用户


为角色授予必要的权限。使用户成为角色的成员。最后,将登录名分配给用户。

为用户授予正确的数据库权限。因为它是您自己的本地数据库。您可以在“用户的属性”->“服务器角色”->“属性”下选择“系统管理员”-Goto user mapping,然后检查数据库。我看不到在sql Server management studio中打开此数据库的方法。因此,我正在visual studio中使用“Sql Server对象资源管理器”。我看到“服务器角色”文件夹,但不允许我添加新角色或修改现有角色。它们位于“数据库”>“安全”下,因此不是服务器对象而是数据库对象。如果您不需要自定义权限,只需添加一个具有现有内置角色的用户,如db_datareader/db_datawriter。我想这就是我遇到的问题。我更改了上面的图像,以便更准确地反映我试图更改localdb设置的位置。当我右键单击“服务器角色”时,我没有添加新角色的选项,只能刷新现有角色。它不是服务器角色。它是数据库本身的一个角色。您需要连接到服务器资源管理器中的数据库-打开它-并在其中查找安全文件夹下的设置。服务器角色是查找覆盖整个服务器的权限的位置,例如创建和删除数据库的权限。