none
sql2008r2 还原数据库后。使用SA登录后, RRS feed

  • 问题

  • sql2008r2 还原数据库后。使用SA登录后,执行下面的语句

    sp_configure 'allow update' , 1

    go

    reconfigure with override

    go

    delete from sysusers where name = 'unierp'

    go

    sp_adduser unierp go grant all to unierp

    go

    sp_configure 'allow update',0

    go

    reconfigure with override

    go

    后弹出

    消息 259,级别 16,状态 1,第 2 行
    不允许对系统目录进行即席更新。
    消息 15023,级别 16,状态 1,第 1 行
    用户、组或角色 'unierp' 在当前数据库中已存在。

    错误不知道是什么问题?

    2010年10月8日 8:15

答案

  • delete from sysusers where name = 'unierp'
    go
    /*
    消息 259,级别 16,状态 1,第 2 行
    不允许对系统目录进行即席更新。
    */
    错误原因见提示信息
    
    
    sp_adduser unierp go grant all to unierp
    go
    /*
    消息 15023,级别 16,状态 1,第 1 行
    用户、组或角色 'unierp' 在当前数据库中已存在。
    */
    上面的delete语句失败了用户还在的,所以这里再次添加的时候自然就出错了。
    
    2010年10月8日 9:27
    版主
  • You can't make change in system tables directly since sql2k.
    2010年10月8日 12:51
  • 查看和修复孤立用户, 直接用 sp_change_users_login 就好了.
    2010年10月9日 4:31
  • 有官方  Support 的方法去解决的问题, 不要用非官方的做法去解决

    2010年10月9日 4:33

全部回复

  • delete from sysusers where name = 'unierp'
    go
    /*
    消息 259,级别 16,状态 1,第 2 行
    不允许对系统目录进行即席更新。
    */
    错误原因见提示信息
    
    
    sp_adduser unierp go grant all to unierp
    go
    /*
    消息 15023,级别 16,状态 1,第 1 行
    用户、组或角色 'unierp' 在当前数据库中已存在。
    */
    上面的delete语句失败了用户还在的,所以这里再次添加的时候自然就出错了。
    
    2010年10月8日 9:27
    版主
  • 另外,建议不要使用sp_adduser来建用户,sp_adduser以后会删除掉的。推荐使用CREATE LOGIN +CREATE USER
    删除用户也一样,推荐使用DROP USER 。

    2010年10月8日 9:35
    版主
  • You can't make change in system tables directly since sql2k.
    2010年10月8日 12:51
  • 查看和修复孤立用户, 直接用 sp_change_users_login 就好了.
    2010年10月9日 4:31
  • 有官方  Support 的方法去解决的问题, 不要用非官方的做法去解决

    2010年10月9日 4:33