質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1082閲覧

スタンドアローン利用の ユーザ向け配布を考えているアプリケーション、データベースの選択で相談! SQLiteで認証付きにできる? MySQLでも配布は簡易に行える?

saya24

総合スコア247

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

3クリップ

投稿2021/11/04 10:23

編集2021/11/05 12:11

Pythonでのデスクトップアプリケーションを構築の上 配布しようと考えていますが、仕様の関係でデータベースを要します。
大層なシステムではないので、当該アプリケーション配置の端末に データベースも収めたいと考えています。

今まで SQLLiteとの組み合わせで スタンドアローン活用のアプリケーションを提供したことがあるので
今回も 一式の配布が超楽なSQLLiteの採用を考えていたのですが

以下の記事をよんで セキュア面の不安を感じています。(中段)

また、こちらの記事での
「 ユーザの作成/削除/パスワード変更は不要」という表現が 不要なだけであり、ログインを要す設定も可能なのか否かを窺い知ることができなかったことから 今回の問合せに至っています。

2021/11/05 21:14追記

以下質問になりますが、配布予定のアプリケーション利用者(=ログイン認証情報を知っている人)は攻撃者として想定しない場合、
=それ以外を攻撃者として想定する場合という条件で 回答を頂けますでしょうか

質問

=その①=
ログインを要すデータベースアプリケーション&フリーとのことで、MySQLに視野を向けたのですが、構築するアプリケーションの配布と全く別の次元で、当該端末へMySQLのセットアップを済ませておく必要があるのでしょうか?
SQLiteのように 配布に関して特段意識せず 当該端末にセットアップを済ませる手立てはあるのでしょうか?

=その②=
MySQLは サービスの立ち上げを伴う雰囲気ですが、構築するアプリケーションから 当該サービスをあげるなり落とすなり 制御できるでしょうか?

=その②=
SQLiteでも、ログイン認証を要すデータベースの設計が可能でしょうか?

=その④=
先の記事中段に、「データベースファイルを守るための対策を講じる必要があります。」との記載があります。具体的にどういった対策事例があるのか教えて頂けますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Supernove

2021/11/04 12:32

データベースはどのような目的(データベースで管理したい情報)を教えてもらえますか?それによってMySQLがいいかSQLiteがいいのか変わります。 技術選定ではセキュリティどうこうよりもなにを実現したいかを最優先に考えてほしいです
saya24

2021/11/04 12:47

データベースの用途は 以下にも記載しましたが 変換表程度です。SQLServerのような定刻実行も不要、トリガーも不要。 配布先端末にセットアップしやすいか、というのは大きなポイントですが、ログイン認証ぐらい必要だなぁと思ってのといあわせです。
Supernove

2021/11/04 13:07 編集

「内容は 仕入れる販売品の、仕入先側の品番と当社側の品番の変換表です。 これが意図せず改ざんされると、社内での認識に違いがでてしまうので、影響はでる、といえばでますね。」 ↑このことでしょうか?であれば質問には一言も書いていないのでこのコメント欄で質問をしました。なので、質問に追記をお願いしたいです
quickquip

2021/11/05 01:52

前置きと質問がぜんぜん噛み合ってないように見えて、そのせいで回答しづらくなっているように感じました。 結局、 アプリの利用者(=ログイン認証情報を知っている人)を攻撃者として想定しない。 つまりアプリの利用者は信頼し、それ以外を攻撃者として想定する ってことなんでしょうか?
saya24

2021/11/05 03:17

quickquipさん、まさにおっしゃるとおりです。
quickquip

2021/11/05 03:39

情報はこの欄に書くのではなくて、質問を編集して追記しましょう。
退会済みユーザー

退会済みユーザー

2021/11/05 13:05

質問がアバウトすぎるので条件は書きませんが、、、 SQLiteで認証付きにできる? →Yes MySQLでも配布は簡易に行える? →Yes あとはご自分でお調べください
saya24

2021/11/05 14:08

dameoさん、ありがとうございます。 両方ともできるんですね! 調べてみます。
guest

回答2

0

ベストアンサー

まずはじめに、誰のどんな攻撃からどのようなデータを守る必要があるのか、それを明らかにしてください。

スタンドアローンで、「データを登録するのも読み取るのも、ソフトウェアを使う当人しかいない」という状況では、特に守るべきものが発生しないこともありえます。

投稿2021/11/04 10:36

編集2021/11/04 10:36
maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/11/04 10:39

逆に、ユーザーが自前でMySQLをインストールしてroot権限を持つ状況であれば、ユーザーはデータベースを触り放題です。
saya24

2021/11/04 11:49 編集

>誰のどんな攻撃からどのようなデータ 具体性がなく申し訳ないですが、提供する私が 配布した当該人しか触らないデータベースの状況を望んでいます。 社内のネットワーク上の端末ですが、ウィルスに感染する恐れはなきにしもあらず、また社内からも内容を改竄されるリスクを極力排除したいです。 内容は 仕入れる販売品の、仕入先側の品番と当社側の品番の変換表です。 これが意図せず改ざんされると、社内での認識に違いがでてしまうので、影響はでる、といえばでますね。 兎に角、SQLiteがログイン認証できるのか否かも分からず
maisumakun

2021/11/05 09:06 編集

> 兎に角、SQLiteがログイン認証できるのか否かも分からず 上に書いたように、「ローカルに保存する」のであれば、MySQLでもSQLiteでも条件は同じです(「社内から内容を改竄される」リスクに対しては、どちらも気休め程度の防御しかできません)。
guest

0

仕入れる販売品の、仕入先側の品番と当社側の品番の変換表です。

これが意図せず改ざんされると、社内での認識に違いがでてしまうので、影響はでる、といえばでますね。

これを個別のアプリケーションのデータベースで管理するのはシステム設計的にアウトだと思います。SQLサーバーでデータを管理してデスクトップアプリとはAPIで通信を行うのがいいと思います。
改ざんを防ぐならサーバーで一箇所に集約するのが一番確実です

投稿2021/11/04 13:11

Supernove

総合スコア1154

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問