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

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

ただいまの
回答率

90.33%

  • MySQL

    6195questions

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

  • MongoDB

    256questions

    MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

  • NoSQL

    62questions

    NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。

データベースのライセンスについて

受付中

回答 6

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 5,576

seri

score 386

サーバの勉強をし始め、データを管理するにはMongoDBやMySQLのような組み込みの機能を使うのが一般的だと最近知ったのですが、これらを商用で利用する場合のライセンスはどうなっているのでしょうか

いくつかサイトを見てみたのですが、これって黙って商用に使っていいのでしょうか・・・

http://anond.hatelabo.jp/20140722001658
http://www.mongodb.jp/mongo/licence

補足:
function(){
//MongoDB内を検索する処理
}
とゆうMongoDBのファイルに関与する関数が有るとします。

例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に
サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG

とゆう解釈でしょうか?

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 6

+6

まず、GPLもAGPLも、料金を取ってのプログラムの再配布を明示的に認めています。たとえば、RHELは「オープンソースのソフトウェアを、対価を取って提供している」例です(もちろん、同じソースコードからCentOSのように無償配布版を作ることもできます)。

MySQL(GPL)の場合、少なくとも「自社でWebサービスを作って、プログラム自体は再配布しない」という場合には、特にソースの公開が必要になることはありません。

GPLは「複製や頒布、改変以外の活動はこの契約書ではカバーされない」ものであって、サーバサイドで動かしているだけでソフトウェアを第三者に頒布しない分には、特段の制約はかかりません(逆を返せば、AGPLにはそのような場合にもユーザーへのソースコード提供が必要となります)。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/22 08:02

    RHELはサポートライセンス料金ですよ。

    キャンセル

+3

maisumakunさんが書かれている通りAGPLではインターネット経由で利用される場合もソースコードの公開が義務付けられますが、MongoDBはそれを回避するための接続ドライバを公式にApacheライセンスで提供しているので、これを使用すれば問題ありません。

GPL/AGPLの扱いに関しては、こちらに詳しく解説されています。

漢のコンピュータ道 受託開発とGPL

--追記--

GPL v2のFAQで参考になりそうなもの

A company is running a modified version of a GPL'ed program on a web site. Does the GPL say they must release their modified sources?
-> The GPL permits anyone to make a modified version and use it without ever distributing it to others. What this company is doing is a special case of that. Therefore, the company does not have to release the modified sources. 

If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
-> Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL.

You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?
->Yes. 

GPL v3の解説ですが、詳しくはこちらのIPAの資料も参考になるかと
GNU GPL v3 解説書

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/11 12:20 編集

    GPL v2のFAQで参考になりそうなもの
    -- 回答本文に移動 --

    キャンセル

+2

MySQLはGPLと商用のデュアルライセンスです。
GPLも商用で利用すること自体は全く問題が無くて、問題はソースコードの公開義務があるかどうかという点ですよね。

GPL v3の解説を読むと、プロパゲート(GPLのライセンス伝搬)について書かれていますが、改変したソフトウェアを内部的に使用する(ソフトウェア本体を頒布しない)場合には、GPLライセンスによるソースコードの公開義務を負う必要はありません。

ソースコードやオブジェクトコードを配布する場合には公開の義務が出てくるので、javascriptについては注意が必用ですが、もともとjsは公開状態なので問題ないのかな?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

MySQLについて分かった範囲で修正します。

OSSのソースの改変・流用時にGPL、AGPLなど、OSSのライセンスへの遵守が生じる点がぼやけている様に思われましたので、以下に、小生の、見解を記しみます。

「MongoDBやMySQLの利用に際し」MongoDBやMySQLの

  1. ソースコードの改変無し:->自由に利用可能。
  2. ソースコードの改変有り:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。
  3. ソースコードの流用有り:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。
  4. ライブラリを動的に利用:->自由に利用可能。
  5. ライブラリを静的にリンク:->GPL、AGPLなど、OSSのライセンスに従う必要が有る。

例えばアプリケーション(クライアント所有アプリ)から、サーバ内のMongoDBを呼び出す際に
サーバ側に上の関数を配置するのはOKだけど、
クライアントアプリ内に直接上記関数を入れるのはNG

上の関数MongoDBやMySQLのソースコードでないのなら、サーバ側もクライアントアプリ内もOKです。
上の関数MongoDBやMySQLのソースコードの流用なら、「配置も入れるのも」OKです。が、GPL、AGPLなど、OSSのライセンスに従う必要が有ります。

ただし、MySQLはデュアルライセンス故、
MySQL - ライセンス早分かり

  1. アプリケーションプログラムのソースを公開して良いとするならば、無償版を使用。
    MySQL Community Server
  2. アプリケーションプログラムのソースを公開を否とするならば、有償版を購入。
    MySQL Editions

追記:
上記関数

  • ODBCやJDBCなどに、動的にアクセスする場合は上記「4.」が適用される。(通常はこれ)
  • ODBCやJDBCなどに頼らず、MongoDBと通信するプログラムを自作する場合は上記「5.」が適用される。(普通(絶対?)、やらない。)

補足:
例えば、maisumakunさんの示された
GNUアフェロGPLの理由

の冒頭に、

GNUアフェロ一般公衆ライセンスは通常のGNU GPLバージョン3を改変したバージョンです。これには一つ要求が加わっています。サーバで改変したプログラムを動かし、そこでそのプログラムとほかのユーザに通信させる場合、サーバはユーザにそこで動いている改変バージョンに対応するソースコードのダウンロードも許可しなければいけない、というものです。

とあります。

  1. 通常はGPL、AGPLで、当然ソースコードが公開されているバイナリーコードを『実行して・させて』利用していると思います。この場合、個人・組織内・公開・商用(販売)のいかなる利用形態に於いても、自由に利用出来ます。

  2. GPL、AGPLのソースを「1文字」でも『改変』し、「公開・商用(販売)」した場合に、改変履歴が分かる様に、ソースコードを公開しなければなりません。

  • 本件の様な「MongoDBのような組み込みの機能を使う」つまりは「改変なし」の場合には、上記「1.」に該当します。

では上記「2.」に該当する例としては、たとえば、

  • WordPressの素の機能では、希望する機能が足らないので、WordPressのphpソースコードを「改変」して機能追加・変更して公開サーバで運用する場合には「WordPressの公開ソースコードとは異なる」事になるので、上記「2.」に該当します。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/11 10:34 編集

    改変したソースコードはGPL派生物の一形態でしかありません。GPLバイナリをリンクし利用するプログラムもまたGPLの派生物とみなされます。

    --引用元が適切でなかった(LGPLのものであった)ので差し替え--

    MySQLが採用するGPL v2のFAQに以下の通り記載されています。

    If a library is released under the GPL (not the LGPL), does that mean that any program which uses it has to be under the GPL?
    Yes, because the program actually links to the library. As such, the terms of the GPL apply to the entire combination. The software modules that link with the library may be under various GPL compatible licenses, but the work as a whole must be licensed under the GPL. See also: What does it mean to say a license is “compatible with the GPL”?

    --------------------------------------------------------------

    データベースの場合は、接続ドライバがGPLかどうかということが問題になります。MongoDBがわざわざドライバをApacheライセンスで提供しているのもこのためです(もともとMongoDBは商用利用を防ぎたくてAGPLを採用したわけではない)。また、A5:SQL Mk-2ではMySQL標準のドライバを使用せず独自開発しています。

    https://plaza.rakuten.co.jp/matsunopage/diary/201011300000/

    なお、ライブラリのリンクでもGPL派生物とみなされると商用利用等が難しくなってしまうので、これを緩和するためGPLリンク例外やLGPLが別途定められています。

    キャンセル

  • 2017/04/11 11:04

    >MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。

    MyODBCを使うだけで「GPL違反」ですか。では、誰もMySQLは使えないという事なんですかね?
    今は、MariaDBに置き換わっているが、MariaDB自体はGPL v2、ODBC,JDBCはLGPLの様。
    詳細を把握するには、Licenceの英文全文の解読が必要ですね。

    キャンセル

  • 2017/04/11 11:14 編集

    maisumakunさんやnullbotさんも回答されているとおり、「使用する」ことには何も問題ありません。GPLが適用されソースコード開示が義務付けられるのは、プログラムを「頒布する」場合です。

    >MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。

    MyODBCを使用するソフトウェアがGPLと互換性のないライセンスの下有償・無償問わず「頒布」されている場合、GPL違反となるのは事実です。A5:SQL Mk-2は誰でもダウンロードし利用できる状態になっているため、MyODBCを使用すれば頒布とみなされGPLを適用する必要があります(GPLを適用すれば違反ではない)。

    キャンセル

  • 2017/05/21 22:24

    A5:SQL Mk-2作者です。若干今更かもしれませんが、自分の解釈です。

    https://plaza.rakuten.co.jp/matsunopage/diary/201011300000/

    >MySQLに接続するために、プロプライエタリアプリケーションからMyODBC(GPLのMySQL用ODBCドライバ)を使うと、Oracle(MySQLの著作権者)ではこれをGPL違反と判断するようです。

    これについてですが、当時Oracle社に電話にて確認を行いました。MyODBCを「使える」プロプライエタリアプリケーションを配布する時点で、GPL違反との回答をいただきました。

    ごれを厳密に適用しようとすると、数多のODBC接続ツール、ひいてはMicrosoft ExcelあたりまでもがGPL違反ということになってしまうと思います。

    …が、流石にそれは無理があるようにも思います。ODBCのような汎用のインターフェースのライブラリは、GPLにはそもそも向かない(無理がある・矛盾がある)と考えます。この辺のことを嫌ってMariaDBはLGPLになっているのではと考えます。

    ちなみに、A5:SQL Mk-2では独自開発の接続ライブラリではなく、Devart社のUniDACというライブラリ(プロプライエタリのライブラリ)を使用しています。こちらもかつては libmysql.dll (GPL)経由の接続もサポートしていた(A5:SQL Mk-2からは使わない)ようですが、最新版では libmysql.dll経由の接続は使えなくなったようです。

    キャンセル

0

組み込み型データベースとサーバークライアント型データーベースでは大きく考え方が違います。MongoDBやMySQLはサーバークライアント型であり、組み込まれていない場合が多く、通常、一緒に配付すると言うこともありません。

まず、ライセンスの制約がきつくなる組み込み型です。SQLite、Oracle Berkeley DB、dbm等です。SQLiteは何の制約もなくなるようにパブリックドメインとなっていますが、Oracle Berkeley DBはAGPLまたは商用ライセンスというデュアルライセンスになっており、商用ライセンスを購入せずに組み込んで配付する場合はAGPL汚染を受けます。

しかし、サーバークライアント型だと様相が異なります。これはHTTPサーバーとブラウザの関係に似ています。サーバーとクライアントが公開されたプロトコルやAPIに基づいてデータをやり取りする場合、サービスを提供する側(サーバー)のライセンスにそのサービスを利用する物に対する規程※が存在しない限り、サービスを利用する側(クライアント)がライセンスの影響を受けることはありません。AGPLであるWebアプリケーションは数多く存在します(例えば、最近流行りのMastodonとか)が、それらを見るためのブラウザもAGPLでないといけないというのは聞いたことが無いと思います。なぜなら、ネットワーク上でのサービスの提供を持ってサーバー側のソフトウェアの役目は完了しており、公開されたAPIに従ってそれを利用するクライアント側のソフトウェアは関係が無いとされるからです。

※ 例として、Microsoft SQL Serverはネットワークで利用するクライアントのソフトウェア側にも使用ライセンスが伝搬します。そのため、直接利用するソフトウェアが一つであっても、間接的な物を含めた最終的な利用者数またはデバイス数でクライアントライセンスを購入する必要があります。

MySQLもMongoDBも同じで、ネットワーク上のどこかにあるMySQLサーバーやMongoDBサーバーを利用するだけのアプリケーションであれば、ブラウザと同じでその制限を受けることはありません。そのアプリケーションが利用しているのは公開されているAPIのみであり、実際に接続するサーバーがMySQLなのかMongoDBなのか、または互換性のある全く別の物(たとえばMySQLの代わりにMairaDBを用いる)なのかは関係無いため、特定のサーバー製品に引っ張られる必要が無いのです。

しかし、ここで安心してはいけません。MySQLやMongoDBを一体化して配付し、一体化して利用するような場合はライセンスの影響を受けます。上の話は、あくまでどこかのそういうサービスをアプリケーションが勝手に利用するという話です。しかし、インストーラーで専用のMySQLまたはMongoDBをインストールして、セットアップして、そのアプリケーション専用にしてしまうと、アプリケーションに組み込まれていると判断されます。

重要なのは、リンクしているとかそういう話ではなく、独立しているかどうかです。ネットワークを通じてサービスを利用するという場合は独立して作成し、独立して配付することが容易です。ですが、あくまで容易という話であって、一体化して配付し、専用の物として利用してしまう場合は製品全体に組み込まれていると判断され、それぞれが独立しているとは見なされません。

なお、データベース本体ではなく、公開されたAPIを用いて接続するためのドライバーは制限が緩いライセンスの場合が多いですので、そちらは組み込まれても問題にならないことがほとんどです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-3

基本的に商用での使用はライセンスが必要でしょう。ただ、MySQLなんかはオープンソースなので、自分の作ったソフトをソースごと公開なら商用で使ってもいいよ、とあったような気がします。各メーカーそれぞれのDBライセンス形態を検索すると出てきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/04/10 16:45

    -1
    大変申し上げにくいのですが、「でしょう」「気がします」だけの回答は質問者にとってもあとから検索してきた人にとってもノイズです。「検索してみれば」とお書きですが、その検索結果にこの無意味な回答が入ってきてしまうわけですよ。明確な答えをお持ちでないのなら回答すべきではありません。

    キャンセル

  • 2017/04/10 16:56

    何も憶測で回答しているわけではなく、これまでの業務実績から一般論を述べています。もしこれがノイズ、と考えるなら以後気を付けます。

    キャンセル

  • 2017/05/22 02:22

    >これまでの業務実績から一般論
    それを人は憶測と呼びます

    キャンセル

同じタグがついた質問を見る

  • MySQL

    6195questions

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

  • MongoDB

    256questions

    MongoDBはオープンソースのドキュメント指向データベースの1つです。高性能で、多くのリトルエンディアンシステムを利用することができます。

  • NoSQL

    62questions

    NoSQL(not only SQL)は、リレーショナルデータベース管理システムとは異なるデータベースシステムを指す言葉です。