无法使用登录名和密码访问sql数据库,C#应用程序
我正在用C#编写Windows服务,其中我无法连接到数据库。 这是我最近提出的问题: SqlException:无法打开登录请求的数据库“path\db.mdf”。登录失败。用户“NT AUTHORITY\SYSTEM”登录失败 到目前为止我所做的: 1) 在服务器属性中设置标志“使用Sql server和Windows进行身份验证” 2) 已为sql server创建登录名。已使用该登录将用户添加到数据库。 3) 已将所有可用角色添加到此登录 第1部分: 如果我使用无法使用登录名和密码访问sql数据库,C#应用程序,c#,sql-server,entity-framework,windows-services,database-connection,C#,Sql Server,Entity Framework,Windows Services,Database Connection,我正在用C#编写Windows服务,其中我无法连接到数据库。 这是我最近提出的问题: SqlException:无法打开登录请求的数据库“path\db.mdf”。登录失败。用户“NT AUTHORITY\SYSTEM”登录失败 到目前为止我所做的: 1) 在服务器属性中设置标志“使用Sql server和Windows进行身份验证” 2) 已为sql server创建登录名。已使用该登录将用户添加到数据库。 3) 已将所有可用角色添加到此登录 第1部分: 如果我使用Sql server 201
Sql server 2012
身份验证连接到服务器,然后尝试连接某个文件夹中的数据库,我会得到:
CREATE FILE encountered operating system error 5(Access is denied.)
while attempting to open or create the physical file 'path\db.mdf'.
(Microsoft SQL Server, error: 5123)
但如果数据库位于此文件夹中,我可以附加该数据库:
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA
这是在SSMS中
第二部分:
尝试从Visual Studio 2012连接数据库时,我会得到什么:
The attempt to attach to the database failed with the following information:
Login failed for user test_user
如果我在代码中使用此连接字符串:
<add name="ConnectionName"
connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;
provider=System.Data.SqlClient;provider connection string='data source=(LocalDB)\v11.0;
attachdbfilename="path\db.mdf";
connect timeout=30;
User Id=test_user;Password=1;
MultipleActiveResultSets=True;
App=EntityFramework'"
providerName="System.Data.EntityClient" />
我确信我正确地输入了登录名。无论数据库是否在MSSQL\DATA文件夹中,我都会收到此错误
访问我的计算机上的某些文件夹的权限有问题,但我不知道为什么,我已授予该用户所有权限
另外,在计算机重新启动一次后,windows服务正确启动并能够连接到数据库,但一段时间后,它失去了此功能。我不知道为什么
请帮帮我,我在过去的4天里一直在努力解决这个问题。谢谢 如果您正在编写应用程序,则必须决定如何处理安全性 SQL Server中有两种安全解决方案 1-AD安全性-SQL Server是否将通过AD处理它?请确保连接字符串使用受信任的安全性。确保将员工广告帐户添加为登录/用户,并将默认数据库设置为应用程序数据库,而不是主数据库。请参阅我关于制作数据库的文章 2-标准安全性-如果应用程序要处理它,则需要使用标准安全性。创建应用程序帐户(登录/用户) 接下来,创建一个具有不同安全级别的内部用户表。您将希望使用应用程序角色来实施不同的安全级别 总的来说,您可能希望研究使用模式来分离和保护数据库对象
看起来你有一些阅读和家庭作业要做…我之前已经回答了这个问题:我已经给NT SERVICE\MSSQLSERVER帐户授予了db_reader和db_writer权限,现在我在SSMS中没有收到“错误5(访问被拒绝)”,但我仍然无法从Visual Studio 2012(以及我的应用程序)连接到db。我更新了问题,见“第2部分”。谢谢
EntityException: The underlying provider failed on open.
Inner excetion: SqlException: Login failed for user test_user.