我已经从我的C#控制台应用程序连接到我的本地数据库(SQL Express)一整天了。
我进行了更新,使用ADO.NET从C#代码中创建数据库和表
当我这样做时,我的正常连接字符串将失败,即
Data Source=.\\sqlexpress; Trusted_Connection=True; Initial Catalog=ThisIsMyDataBase;错误消息是
Cannot open database "ThisIsMyDataBase" requested by the login. The login failed.\r\nLogin failed for user 'My-PC\\MrD'.如果我在SSMS中打开这些表,那么我就可以使用Windows身份验证访问所有内容。
我的印象是,Trusted_Connection=True意味着我有权限,而我是通过我的Windows帐户(而不是SQL帐户)访问它的,这意味着我看不到这个问题,但我显然错了。我不确定如何解决这个问题。
发布于 2015-05-13 18:51:00
检查您的model数据库(在management studio中的系统数据库下)是否在Security/Users下列出了您的WIN用户。如果没有,请添加它。然后删除MyDb数据库,并使用您的代码重新创建它。CREATE DATABASE语句使用model数据库的副本来创建新数据库及其元数据。
发布于 2015-05-13 18:52:06
该错误本身表明用户没有从sql failed for user 'My-PC\\MrD'.本身为用户进行登录的访问权限。
发布于 2015-05-13 22:43:16
我有解决方案,但我一点也不明白
答案是用较少的字符重命名数据库。我的实际数据库有27个字符,我只是给它起了一个4个字符的长名称(简称为My01),它工作得很好。
https://stackoverflow.com/questions/30212318
复制相似问题