sql - 如何将所有包含用户、架构和角色的数据库从一台服务器移动/复制到另一台服务器

标签 sql sql-server database sql-server-2008

我需要将我所有的数据库(只有 5 个)从一台服务器移动/复制到另一台服务器。我知道如何进行备份和恢复,但我还需要移动我的数据库的所有信息,包括用户、模式等......

最佳答案

  1. 右击数据库
  2. 点击任务
  3. 点击生成脚本
  4. 通过向导并选择您的表
  5. 在选项页面上单击“高级”按钮(它就在那里,只是不太突出)
  6. 更改“脚本数据类型”选项

有脚本数据和登录选项(大量其他内容)。这非常方便。

这是将生成脚本以在所有数据库上添加所有角色的脚本

declare @selectStatement varchar(1000)

set @selectStatement = 'Use ?;SELECT ''USE ?''; SELECT ' + '''EXECUTE sp_AddRoleMember ''''' + ''' + roles.name + '''''''+','''''+''' +  Replace(users.name,''DOMAINA'',''DOMAINB'') + ''' + '''''''
     from sys.database_principals users
    inner join sys.database_role_members link
    on link.member_principal_id = users.principal_id
   inner join sys.database_principals roles
     on roles.principal_id = link.role_principal_id'

                            --where users.name like ''%%'''

                EXEC sp_MSForEachDB @selectStatement;

关于sql - 如何将所有包含用户、架构和角色的数据库从一台服务器移动/复制到另一台服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8441134/

相关文章:

mysql - 为什么 UNION ALL 似乎要等待两个查询完成?

sql-server - SQL Server - 获取所有数据库和文件

sql - 日期时间值生成 MS SQL

MySQL数据库表创建

mysql - 当我在页面加载时使用数据读取器附加文本框的内容时,更新查询不起作用

mysql - 使用 HAVING GROUP_CONCAT 计算记录行

SQL查询根据加入日期获取客户数量

database - 用于复制的整数主键

java - 在 API 中捆绑数据库

sql - 如何使用pl sql中的匿名 block 打印出整个表?