2017-02-14 57 views
0

如何在Sybase中创建其中一个数据库为脱机的角色。它给出了950错误。有趣的是,它创建数据库中的角色,但消息说在Sybase中使用脱机数据库创建角色

请稍候,稍后再尝试您的命令。
Sybase错误代码= 950 严重级别= 14,状态= 1,事务状态= 0

+0

你的问题没有道理。你说它给出了一个错误,但创建了角色。你如何确定它创建的角色?创建角色后不起作用。通常,数据库必须在线才能创建角色,因为它需要写入目标数据库中的系统表。 –

+0

准确@MichaelGardner。它不应该创造一个角色。我相信这是一个错误。如果尝试在数据库脱机时直接使用Sybase Central创建新角色,则会引发错误,指出其中一个数据库处于脱机状态。您接受它并单击完成它将显示此角色已存在。 – KshitishSC

回答

1

你看到可能与ASE如何打包交易,而不是一个真正的错误行为。

该角色本身是在master数据库(master..sysserverroles & master..sysloginroles)中创建的,然后将该角色添加到用户数据库(myUserDB..sysroles)中。这很可能是在多个事务中创建的,因此创建角色本身的事务正在成功完成,但由于数据库处于脱机状态,将角色添加到数据库的事务失败。

因此,该工具告诉你事实存在,但是一旦数据库恢复联机,它仍然需要添加到用户数据库中。

+0

感谢您提供的信息,但是这种行为不仅仅是从Sybase Central尝试时,而且也是从我们的代码和Interactive SQL中进行尝试时。我是一个新手,但如果我的理解是正确的,当我们尝试从过程创建角色,而不是我们可以说有多个事务和过程的某些部分回滚以前的指令不起作用,但我们正在使用**创建角色**命令,这应该创建一个角色并发出警告或根本不应创建角色。 – KshitishSC

+0

@KshitishSC有趣......但似乎无论如何,角色创建和数据库分配都被视为单独的事务。 –

+0

是的,它似乎是这样,这就是为什么我认为这是一个错误 – KshitishSC

相关问题