可以阅读但无法更新

时间:2011-08-28 10:06:37

标签: sql-server-2008 login asp-classic sql-update

问题:在经典ASP页面中使用SQL在SQL Server 2008 R2中拒绝任何更新数据库的尝试。

简而言之,可以读取,但无法使用ASP页面中的SQL更新/写入数据库

错误讯息:

  

Microsoft OLE DB Provider for SQL Server错误“80040e4d”

     

用户登录失败

我花了6个多小时才排除故障,但仍然没有回答

检查的事情

  1. 用户密码正确无误。双重检查。测试了错误的密码,导致我无法从DB读取。

  2. 当用户密码正确时,可以从数据库中读取。可以使用SQL从DB读取。只是无法使用SQL进行更新。

  3. db_datareader&检查db_datawriter是否为用户

  4. 检查SQL Server日志 - 错误18456严重级14状态8.这是密码不匹配。但我非常确定密码是正确的,因为我可以从DB读取。只有当SQL尝试写入DB时才会被拒绝。

  5. 提示

    • dbo是否需要db_datareader& db_datawriter也检查过了吗?我无法在SQL Server Management studio中核对清单

    • 我需要做什么关于架构?

    任何人的帮助。非常感谢/

    它在使用SQL Server 2000的其他站点中完美正确地工作。当我迁移到SQL Server 2008 R2时,这就是问题所在。

    AA Jaz

2 个答案:

答案 0 :(得分:0)

看起来您登录SQL Server只具有数据库(/ table / server)的读权限,并且它没有写权限,dbwriter和dbreader是SQL Server 2000中的角色,2008年它全部改变了您已为登录添加角色。

请尝试为登录提供所有权限,如下所示

GRANT ALL ON <your_table> to <your_login>

答案 1 :(得分:0)

请从sql server management studio尝试此数据库,以便在查询分析器中通过查询更新任何表,如果它不起作用,则检查表权限或登录用户权限