如何解决AWS RDS SQL Server导入.bacpac文件时报权限错误的问题
导入.bacpac到AWS RDS SQL Server报错解决方案
无法创建数据库,原因是数据库不存在或当前用户没有操作权限。
问题根因
该报错通常由两类原因触发:一是用于连接RDS实例的账号缺少创建数据库的服务器级权限,二是导入时指定的目标数据库不符合RDS规则、或要导入到已存在数据库时未开启对应配置。
分步解决方法
- 第一步:验证并授权账号权限
用SSMS连接到目标RDS实例,执行以下SQL检查当前账号权限:SELECT * FROM fn_my_permissions (NULL, 'SERVER');
若返回结果中没有CREATE ANY DATABASE权限,切换为RDS实例的主账号执行授权语句:GRANT CREATE ANY DATABASE TO [当前使用的用户名]; - 第二步:校验目标数据库规则
导入时指定的数据库名不能和实例上已有的数据库重名,仅可包含字母、数字、连字符,长度不超过63位,不可使用SQL Server保留关键字。 - 第三步:调整SSMS导入向导配置
若你需要将数据导入到已存在的数据库中,需在导入向导的「高级设置」页,勾选允许导入到现有数据库选项,避免向导默认触发新建数据库的逻辑。 - 第四步:命令行导入规避SSMS配置问题
若SSMS向导持续报错,可使用sqlpackage工具执行命令行导入,示例命令如下:sqlpackage /a:Import /sf:"C:\本地bacpac文件路径\文件名.bacpac" /tsn:"RDS实例端点,1433" /tdn:"目标数据库名" /tu:"RDS登录用户名" /tp:"RDS登录密码"
内容的提问来源于stack exchange,提问作者Art
相关产品推荐
相关产品推荐

