2016-10-19 3 views
0

ログインに成功すると、アプリケーションのすべてのユーザーは、認証トークンと専用SQLサーバー接続を受け取ります。ノードサーバーの再起動中にデータベースサーバー接続を保存することはできますか?

ノードサーバーは要求を受信すると、承認トークンをチェックし、有効であれば、そのユーザー専用の接続を使用してデータベースに要求します。

トークンと接続は、通常のJSONオブジェクトに格納されます。このオブジェクトは、ノードサーバーの再起動後にクリアされます。したがって、ユーザーはSQLサーバー証明書をもう一度入力する必要があります。

私のAPIは安定していないので、ノードサーバーを頻繁に再起動する必要があり、それがユーザーに不便を与えることになります。

専用接続を使用している理由は、SQLサーバーレベル(特定のテーブルまたはビューへのアクセスを許可)でユーザーのアクセスを管理し、ユーザーのアクティビティを記録するためにSUSER_SNAME()関数を使用することができるためです。このアプローチでは、行レベルのセキュリティモデルを実装することもできます。

SQL Serverセッションのトークンを保存する方法があります。これにより、ユーザーの資格情報を入力せずにサーバーに接続できるようになりますか?

ありがとうございます!

+0

質問タイトルに間違いを修正してください。私は正直言ってあなたが何を言っているのか、それとも自分でそれを解決するのかはわかりません。私はあなたが「データベースが痛い」とは思わないので、何かが間違っている。 – jfriend00

+0

@ jfriend00謝罪します。今修正されました。 – CubicsRube

+1

あなたのAPIを修正して安定させて、ノードサーバーを定期的に再起動する必要がないようにする方がいいでしょう。この問題を解決するためにたくさんのエンジニアリングを投資するつもりなら、それはあなたの時間を費やすのに良い場所のようです。 – jfriend00

答えて

1

サーバーの再起動中にデータベース接続を保存することはできません。接続は特定のプロセスに属します。そのプロセスが強制終了されると、接続も強制終了されます。再起動して、ノードのアプリはちょうどプロキシに再接続されないカスタムプロキシプロセスへ

  1. 移動データベース接続:

    は、あなたができるいくつかのものがあります。これにより、node.jsサーバーの再起動中に、実際のデータベース接続がプロキシに保持されます。

  2. ローカルデータベースにユーザーの資格情報を格納します。したがって、node.jsサーバーが再起動したときに、ユーザーに資格情報の再入力を求めずにデータベースに再接続できます。これには明らかにセキュリティ上の意味があります。

  3. node.jsサーバーを非常に頻繁に再起動する必要がないように、APIの安定性を修正します。

+0

ありがとう!カスタムプロキシプロセスの実装方法に関する参考資料はありますか? – CubicsRube

+1

@FlashDark - この場合、接続を作成してリクエストを送信する簡単なAPIを使用して、DB接続の所有者であった独自のサーバーになります。 – jfriend00

関連する問題