none
SQL2005触发器UPDATE时错误:服务器主体“zj_bbs”无法在当前安全上下文下访问数据库"zhujishi_web"。 RRS feed

  • 问题

  • 写了一个同步的触发器
    有论坛数据库 zj_bbs 中的 zj_User 表更新触发 同服务器内的zhujishi_web数据库下的zj_user表更新。

    --论坛表更新
    create trigger tr_update_User on zj_User
    for update
    as
    set xact_abort on
    update zhujishi_web.dbo.zj_User set UserPassword=i.UserPassword,UserEmail=i.UserEmail
    from zj_User,inserted i,deleted d
    where i.[UserName]=d.[UserName] and i.[UserName]=zhujishi_web.dbo.zj_User.[UserName]

    我测试了一条更新语句报错:
    更新语句:

    UPDATE zj_User
    SET UserPassword = '123456'
    WHERE (UserName = 'Banian')

    报错为:

    SQL执行错误。
    已执行 SQL 语句: UPDATE zj_User SET UserPassword = '123456' WHERE (UserName = 'Banian')
    错误源: .Net SqlClient Data Provider
    错误信息: 服务器主体“zj_bbs”无法在当前安全上下文下访问数据库"zhujishi_web"。

    不知道是我的触发器写错了还是权限问题?

    该如何解决,谢谢!

    2011年9月15日 10:06

答案

全部回复

  • 服务器主体“zj_bbs”无法在当前安全上下文下访问数据库"zhujishi_web"。

    你当前的用户有访问这个库的权限?


    family as water
    • 已编辑 Stone Z 2011年9月15日 14:16
    2011年9月15日 14:16
  • 你好,Stone Z 。
    我这两个库是属于同一个服务器的,我用 insert的触发器没有遇到权限问题,同步正常,在写UPDATE的时候就遇到这个问题。

    所以不知道是什么原因。

    2011年9月16日 2:03
  • Does the user who ran update have proper permission in target db? Sql manages permission at object level, user doesn't necessary have same permission in all dbs on the server. 
    2011年9月16日 2:20
  • 问题已经解决了,是低级错误 :(

    我在用本机的查询器测试,导致错误发生。
    在服务器上直接打开数据库测试一切正常。

    感谢两位的回答。

    2011年9月16日 3:05