2017-02-14 6 views
0

dbをオフラインとして持つSybaseでロールを作成する方法。 950のエラーが発生します。面白い部分は、それはデータベースに役割を作成しますが、メッセージにはオフラインデータベースを使用してSybaseでロールを作成

というメッセージが表示されます。
Sybaseのエラーコード= 950 重大度= 14、状態= 1、トランザクションの状態= 0

+0

あなたの質問は理にかなっていません。あなたはエラーを出すが、役割を作成すると言った。どのようにしてそれが役割を果たすと判断していますか?役割の作成後に何が機能していないのか。通常、データベースは、ターゲットデータベース内のシステムテーブルに書き込む必要があるため、ロールを作成するためにはオンラインでなければなりません。 –

+0

正確に@MichaelGardner。役割を作成すべきではありません。これはバグだと思う。 Sybase Centralを使用してデータベースがオフラインのときに新しいロールを作成しようとすると、データベースの1つがオフラインであるというエラーがスローされます。それを受け入れ、Finishをクリックすると、このロールがすでに存在することが示されます。 – KshitishSC

答えて

1

あなたが見ている行動は、ASEはバグ本当に取引をパッケージ化し、そしてませんどのように関連しているかもしれません。

ロール自体がmasterデータベース(master..sysserverroles & master..sysloginroles)に作成され、ロールがユーザーデータベース(myUserDB..sysroles)に追加されます。これは、複数のトランザクションで作成される可能性が高いため、ロール自体を作成するトランザクションは正常に完了していますが、データベースがオフラインになっているため、ロールをデータベースに追加するトランザクションは失敗しています。

このツールでは、ロールが存在することがわかりますが、データベースがオンラインに戻った後でもユーザーデータベースに追加する必要があります。

+0

情報をお寄せいただきありがとうございますが、この動作はSybase Centralから試すだけでなく、コードとInteractive SQLから試してみる場合にも当てはまります。私はこれを初心者にしていますが、複数のトランザクションがあり、前の手順をロールバックするプロシージャの一部が機能していないと言うことができますが、私たちは** create role **コマンドを実行すると、ロールを作成して警告を表示するか、ロールを作成しないでください。 – KshitishSC

+0

@KshitishSC興味深いですが、まだツールに関係なく、ロールの作成とデータベースの割り当ては別々のトランザクションとして扱われるようです。 –

+0

はい、そうだと思うので、これはバグだと思います – KshitishSC

関連する問題