SQL SERVER的SID和表的所有权问题

今天碰到一个很纳闷的问题,在远程服务器上面调试一个数据库,一切正常,将备份文件下载到本地,还原后,却不能正常使用,老是提示对表的操作失败,似乎是权限问题,很纳闷、、、

查了点资料,发现是用户权限问题,但是建立了和原服务器上一样的用户名,甚至连密码都是一样的,却还是不行,郁闷至极、、、

后来发现,是表的所有者问题引起的,可我明明是建立了所有者的用户名啊,不解,又查资料,发现SQL SERVER在验证用户权限的时候,是根据用户的SID字段里面的值来进行验证的,终于明白了,只要将sysusers表中的SID和实际新建用户的SID更新为一致,应该就可以了,问题解决。

另外,如果要直接更改一个数据库中所有的表的所有者为另外一个用户,可以用下面的语句:
exec sp_msforeachtable 'sp_changeobjectowner ''?''''dbo'''

终于搞定了,运行程序,一切正常。
posted @ 2007-02-02 16:39  Lixy  阅读(632)  评论(0编辑  收藏  举报