【问题标题】:Create role in Sybase with offline database使用离线数据库在 Sybase 中创建角色
【发布时间】:2017-07-02 07:22:25
【问题描述】:

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

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

【问题讨论】:

  • 你的问题没有意义。你说它给出了一个错误,但创建了角色。你如何确定它创造了这个角色?创建角色后什么不起作用。通常,数据库必须在线才能创建角色,因为它需要写入目标数据库中的系统表。
  • 正是@MichaelGardner。它不应该创建角色。我相信这是一个错误。如果您尝试在数据库脱机时直接使用 Sybase Central 创建新角色,则会引发错误,指出其中一个数据库处于脱机状态。您接受它,然后单击完成,它将显示该角色已经存在。

标签: sybase offline sap-ase role


【解决方案1】:

您看到的行为可能与 ASE 打包事务的方式有关,而不是真正的错误。

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

因此,该工具告诉您事实,即角色存在,但仍需要在数据库恢复联机后将其添加到用户数据库中。

【讨论】:

  • 感谢您提供信息,但这种行为不仅发生在从 Sybase Central 尝试时,而且还发生在我们从代码和 Interactive SQL 中尝试时。我是一个新手,但如果我的理解是正确的,当我们尝试从过程创建角色时,我们可以说有多个事务并且回滚先前指令的过程的某些部分不起作用,但我们正在使用 create role 命令,这应该创建一个角色并引发警告,或者根本不应该创建一个角色。
  • @KshitishSC 有趣..但似乎不管工具如何,角色创建和数据库分配都被视为单独的事务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 2014-03-03
  • 2019-07-02
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多