我们正在移动一个SQL 数据库到新的服务器上。我想要通过把它从一个服务器分离然后拷贝文件到新的服务器上再组合在一起的方法来移动数据库。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)数据库的组合没有任何问题。然而,当我想要常见用户并给他们赋予新服务器上表和存储过程的权限的时候,给出了如下的错误信息。组合数据库的超级用户表有原来数据库的用户信息。我如何才能从新组合的数据库中清除原有的用户信息?
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)专家回答:
SQL Server把登录信息存放在MASTER数据库中,而把USER信息存放在用户数据库中。因为这个原因,当你从另外一个不同的服务器中重新存储数据库,或者当你从不同的服务器种族和数据库的时候,你就会遇到不匹配的问题,除非服务器是以同样的方式建立和管理的。
如果你正在把数据库移动到一个全新的服务器上,那里还没有登录信息存在,你可以用脚本把登录信息取出来,然后应用在新的服务器上面。这可以通过使用DTS来完成,或者通过编写T-SQL代码来用脚本取出数据。这篇MSDN article有关于如何完成它的更多细节。参考这篇文档,获得完整的解决方案。