3

使用 Windows Azure 门户,我尝试完成新的(2013 年 7 月)自动导出功能所需的配置。

我的默认 SQL Azure 用户密码长度超过 12 个字符,因此被门户拒绝。我创建了一个新用户并登录,设置了权限EXEC sp_addrolemember 'db_owner', 'myuser';,但即使门户接受了这些详细信息,也不会发生自动导出,静默失败。

其他用户让它与创建数据库时创建的用户一起使用,但其他用户也有我的问题:他们无法让它与新用户一起使用。

如果我通过列出用户角色

SELECT
    dbU.[name] AS [user]
    , dbGp.[name] AS [Group]
FROM
    sys.database_role_members AS dbRM
    JOIN sys.database_principals AS dbU ON dbU.[principal_id] = dbRM.[member_principal_id]
    JOIN sys.database_principals AS dbGp ON dbGp.[principal_id] = dbRM.[role_principal_id] 

所有用户都是 db_owner - 我看不出默认用户和新用户之间有任何区别。

有任何想法吗?

4

3 回答 3

1

执行CREATE DATABASE X AS COPY OF Y操作时,您只能使用最初在 SQL Azure 上创建数据库的登录名来复制数据库(如本文所示

我看不到针对自动导出过程的类似限制,但是这可能是针对 SQL Azure 上的数据库的导入/导出操作的情况。

看来您必须使用原始登录名。

编辑:在本文的成本影响部分下,它表示在导出数据库之前,会在同一台服务器上创建一个副本。这意味着您确实需要使用最初创建数据库的登录名。

于 2013-07-30T10:43:08.387 回答
1

对于那些点击此线程来寻找他们的 SQL Azure 自动导出不运行的原因的人,如果您尝试导出联合数据库,它将失败。联合数据库不支持该CREATE DATABASE X AS COPY OF Y构造。

即使不支持联合,Azure 门户也允许您为其设置自动导出作业。但是,这些作业会默默地失败,并且门户网站不会说明为什么它们没有失败。

要解决您的特定问题,请尝试CREATE DATABASE X AS COPY OF Y使用您在创建作业时指定的凭据从主数据库运行。接下来,看看你得到了什么错误。这是我在意识到发生了什么之前遇到的错误:

消息 45038,级别 16,状态 1,第 1 行创建数据库作为联合根数据库的副本不受支持。

消息 45038,级别 16,状态 1,第 1 行创建数据库作为联合成员数据库的副本不受支持。

于 2013-08-08T14:03:55.060 回答
0

如果您尝试自动导出的数据库是免费的 20mb Web 数据库,那么它将失败,因为目前 Azure 只允许 1 个免费的 20mb 数据库。因此,当它尝试复制数据库时,它会失败,因为它不允许您拥有 2 个空闲数据库。因此,如果您希望自动导出工作 - 您只需升级到付费数据库。

于 2013-09-18T04:46:12.470 回答