さくらインターネットのレンタルサーバーのデータベースに値を追加するようなアプリを作成したい
解決済
回答 2
投稿
- 評価
- クリップ 1
- VIEW 689
環境
さくらインターネット レンタルサーバー スタンダードプラン
MySQLデータベースを作成済み
ネットワーク初心者
自作データベースすこしかじった
MySQL コマンドでの基本的な操作方法は調べた
さくらインターネット レンタルサーバー やったことない
アプリ側 : おそらくjava
PC側 : できればpython
サーバー側 : できればpython/c++だが、何でも良い
やりたいこと
スマートフォンなどのアプリなどから、サーバー上のデータベースにアクセスし、Read, Insert, Update, Delete処理などを実行したい。
とりあえず、PC上でPythonを使ってサーバー上のデータベースを読み書きし、それに成功してからアプリで実装しようと思っています。
問題点
さくらインターネットのHPに、「セキュリティ上の理由により「さくらのレンタルサーバー」以外からは接続できません」と書いてある。
これは、例えば、PC上でサーバーのデータベースを読み書きするPythonのプログラムを実行しても、何らかの原因で拒否されるのではないかと思います(実際、テストコードを実行するとコマンドプロンプトが入力を受け付けなくなりました。これは、フリーズするときのような白くなるというものではなく、ctrl-cなどを押しても、Pythonの実行が終わらなくなりました)。
そのソースコードは以下のとおりです。
import mysql.connector
host_name = 'hoge'
port = '1234'
db = 'hoge'
user = 'hoge'
password = 'hoge'
cnt = mysql.connector.connect(
host=host_name,
port = port,
db=db,
user = user,
password=password
)
db = cnt.cursor(bufferd=True)
print("finish")
現状の案
サーバー上に、プログラムを常に起動させておき、そのプログラム経由でデータベースを編集する。
例えば、
アプリー>データベース操作リクエストー>サーバーに常駐しているプログラムー>データベース操作リクエストー>データベースの変更
それに対する問題点
アプリが送ったデータであることを、どうやって保証するか?
質問内容
- さくらインターネットのデータベースを直接編集することはできないのか?
- 直接編集できる場合、どうするのか/できない場合、現状の案よりよいものはあるのか
- 直接編集できん場合で、現状の案で良い場合、それに対する問題点をどのようにして解決すればよいか
の3つです。
よろしくお願いいたします
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+2
(さくらの)サーバー上にMySQLに対して操作するようなPHPプログラムを置いておき外部APIとして利用すれば良いと思います。(PHPじゃなくても良いですけどさくらサーバー上で動作するものである必要がある)
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
さくらインターネットのデータベースを直接編集することはできないのか?
=> レンタルサーバを経由でないとデータベースの更新はできません直接編集できる場合、どうするのか/できない場合、現状の案よりよいものはあるのか
直接編集できん場合で、現状の案で良い場合、それに対する問題点をどのようにして解決すればよいか
=> m.ts10806 さんの回答通り
さくらのレンタルサーバでは常駐プログラムを許可してませんので、
さくらのVPSなどで自分でDBサーバを運用するほうが要件にあっているのではないでしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2019/08/30 13:38
2019/08/30 20:58
今調べてみて、このサイト(https://note.mu/kazztech/n/ndb3a5468f299)のようにurlでサーバー上でphpプログラムを実行するということで問題ないでしょうか?
その場合、アプリから送られたデータであることをどのように保証すればよいでしょうか?
2019/08/30 21:05
送られてくる側はどこから実行されるなんて知らないですよ。
正しくリクエストが送られれば、別のどこから送られようと所定の処理を行います。
まあ・・・何かしら識別用のパラメータを送るとかがひとまずの対応でしょうね
2019/08/30 21:29
パラメーターというのは、例えば、パスワードのようなものでしょうか?
例えば、データベースに値を追加するようなリクエストの場合、誰かが変な値を混入させるようなことは、どうやって防いでいるのでしょうか?
今の所の使用用途としては、自分が作ったアプリやプログラムのみそのデータベースにアクセスする予定です(ただし、アプリは不特定多数が使用します)