我试图让一个经典的 ASP 应用程序连接到本地 SQL Server 2008 数据库。该应用程序和数据库是由其他人构建的。我只是想让它们在我的机器(Windows 7)上安装和运行。
当 ASP 应用程序尝试连接到数据库时,我收到以下错误:
Could not connect to database:
Error Number: -2147467259
Error Message: [ConnectionOpen (Connect()).] does not exist or access denied.
我在 Windows 事件查看器中看不到任何消息。我正在查看:事件查看器-> Windows 日志-> 应用程序。
这是使用简单还原的全新数据库安装。SQL Server 安装使用默认实例。SQL Server 和 Windows 身份验证都允许。我保留了现有的连接字符串(在 ASP 代码中)并尝试将其添加到我的 SQL Server 安装中。这是连接字符串:
strConn = "PROVIDER=SQLOLEDB;SERVER=localhost;UID=TheUser;PWD=ThePassword;DATABASE=TheDatabase;"
为了将该用户添加到 SQL Server,我转到 SSMS 中的安全/登录并添加了用户和密码。我选择了有问题的数据库作为默认数据库。我认为这可能会奏效,但事实并非如此。然后,我进入 TheDatabase,然后进入 Security。我在那里添加了一个新用户,引用了我已经在服务器安全中添加的新用户。在 Owned Schemas 下,我单击了 db_owner 并在 Role Members 下检查了 db_accessadmin 和 db_owner。这些都没有给 ASP 应用程序访问数据库的权限。sid 值与sys.database_principals
相关sys.server_principals
登录名匹配。我可以使用此登录名登录 SSMS。
应用程序需要像这样对数据库执行选择:
oConn.Execute('select * from someTable')
我不是 DBA,我在这里有点抓住稻草。我如何连接这个东西?
谢谢,杰