我有生产和开发环境服务器。 每月一次,我想从生产中转储数据库并将其加载到开发中!
但是还有一些用户和登录问题(缺少登录,权限等)。
转储后同步用户和登录的最佳方法是什么?
答案 0 :(得分:1)
您可以从prod master bcp 输出您的syslogins表,并将 bcp 该表放入您的dev主服务器。这必须在第一时间仔细完成。我建议你从开发系统中删除所有用户登录(非系统默认登录)。
要 bcp 进入master,您必须设置以下标志以允许更新系统表:
sp_configure 'allow updates', 1
然后使用块大小为1的数据中的 bcp ,这将允许重复的行被抛出,而不会影响非重复的行。
bcp master..syslogins in prodsyslogins.file -Usa -Psa_password -Smyserver -n{-c} -b1
完成bcp后,您将需要取消设置系统表更新标志。
sp_configure 'allow updates',0
如果正确完成,所有syslogin suid都应该与每个数据库中的sysusers suid相匹配,这应解决您遇到的权限问题。
练习小心确保在开始搞乱之前备份master。
答案 1 :(得分:1)
在开始加载之前,您可以bcp out sysusers,sysalternates和sysprotects。数据库联机后,启用“允许更新”,删除sysusers,sysalternates和sysprotects以及bcp in。
您还可以检查是否存在任何suid不匹配。
从sysusers t1,master..syslogins t2中选择t1.suid,t2.suid,其中t1.name = t2.name和t1.suid!= t2.suid和t1.suid!= -2