Implem / Implem.Pleasanter

Pleasanter is a no-code/low-code development platform that runs on .NET. You can quickly create business applications with simple operations.
https://pleasanter.org
GNU Affero General Public License v3.0
511 stars 81 forks source link

MS-SQLでバックアップしたデータを他のホストでリストアして利用する場合の… #472

Closed nozoe closed 9 months ago

nozoe commented 1 year ago

Pleasanter の不具合やデータを間違って消したりした場合等に、別PCにPleasanter の実行環境を構築して既存システムで取った バックアップをSQL Server Management Studioでリストアして、CodeDefinerを実行すると、Implem.Pleasanter_OwnerImplem.Pleasanter_User権限でデータベースにアクセス出来ないとエラー吐いて失敗します。

(構築時にDatabaseが無い状態でリストアしてもCodeDefiner 失敗するので、 一度何もない状態でCodeDefiner を実行しておく必要あり)

実は、この問題に半年前にも遭遇しており何処かにメモを残したはずだったのですが、見つからず手順を完全に忘れてしまい、 ここ数日試行錯誤してやっと解決したので、共有しておきます。

出来れば、CodeDefiner にこの矛盾を解決する手順を入れて頂くか対応方法をFAQあたりに残して頂ければとここに記載 しておきます。

別件のIssue対応でどうしても既存データベースを持った検証環境が欲しかったので。。。

今回の環境としては、 既存システム環境

新環境は、

エラーとなるのが権限関連なので、最初にセキュリティのツリー側に二つのIDがあるのに着目するのですが、Databaseツリーの 中にあるのに気づかず右往左往してやっとDatabase 側のツリーの中にセキュリティツリーがあるのを発見します。 プロパティを開いて見比べても違いはありません。見た目上はあっている様に見えます。 結果から見て内部的なIDが異なっているんだと思います。

そこで、対策として、データベースツリーのセキュリティー->ユーザのImplem.Pleasanter_OwnerImplem.Pleasanter_User を削除してCodeDefinerを実行すると無事にCodeDefinerが成功します。

MS-SQLを使い込んでいれば、直ぐに気付くのかもわかりませんが、たまにしか触らないユーザには中々のハードルです。 それとももっと簡単な方法があれば教えて下さい。

こういう場面って本気で使っていたらあることだと思うんですけど、過去問題になってないのでしょうか?

個人的には、データベースを良く知らない人でも使えるのがWebDBシステムだと思うので、 私より更にシステムを知らない人達が利用するのではないかと思います。 その為には適切なマニュアルと適切なエラーを出して次の行動を促す事が私は大切だと思いますが、 現状はそうなっているとは思えません。

他のIssue で上げているImport するとシステム上はエラーになっていてもユーザが気づけないと言ったことも 作っている側はエラーが出るデータをインポートするのが悪いんだよと思うのかもしれませんが、 アプリケーションを提供する側の責任としてそれが分かるようにしてあげるべきだと思います。 Pleasanter を普及させるためにも痒いところに手が届くシステムであって欲しいと切に願います。

image

pierre3 commented 11 months ago

Issueありがとうございます。

頂いたご意見を今後の製品及びマニュアル作成の参考とさせていただきます。

github-actions[bot] commented 9 months ago

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

github-actions[bot] commented 9 months ago

This issue was closed because it has been stalled for 7 days with no activity.

nozoe commented 7 months ago

FAQに追加説明ありがとうございます。 この件に関してFAQが更新された様ですが、、、 https://pleasanter.org/manual/faq-unable-login-after-restore ※1の脚注で「結果が表示しなくなるまで3の処理を繰り返します。」とありますが、3の処理とはどれでしょうか? 2の処理を繰り返すのTypo?

それと、このFAQの中で EXEC sp_change_users_login 'Report'を利用していますが、MS-SQLのドキュメントを参照すると、この機能は将来なくなるから、ALTER USER でとも書かれています。。。。 (ChatGPTに聞く限りでは同等機能は実装されてなさそうです…) https://learn.microsoft.com/ja-jp/sql/relational-databases/system-stored-procedures/sp-change-users-login-transact-sql?view=sql-server-ver16