今天发现一个问题,用户在运行报表的时候无法查询,提示没有权限。可是以前是好好的啊,为什么不行了呢?
试着用账户登录SQL Server没有问题,但是无法访问数据库。用sp_change_users_login'report'查询,发现这个账户是孤立的。
看起来是有人改动过这个账户了。由于是只读数据库,用Auto_fix无法解决,难道要重新创建?
突然想到可以将这个账户删除,然后从主服务器上将账户的创建脚本倒出来然后再重新创建,这样就可以保证SID是相同的,可以解决这个问题。
解决办法:
1.在Secondary服务器删除旧的SQL Login账户。
2.用存储过程sp_help_revlogin在辅助服务器导出Login的生成脚本
3.在辅助服务器运行创建脚本。
4.查询孤立用户发现已经没有了,问题解决。
sp_change_users_login'report'
下一步就是要查为什么会发生改变了,头大啊。