web-dev-qa-db-ja.com

sqlite3のユーザー名とパスワード

Linuxマシンでsqlite3を使用していますが、ユーザー名とパスワードなしでデータベースを取得しています。同じユーザー名とパスワードを設定できますか?

19
Raja

いいえ、sqlite3データベースは非常に軽量なシステムです。サーバーは不要で、すべてのデータが1つのファイルに保存されます。ユーザー名/パスワードはsqlite/sqlite3パッケージではサポートされていません。

シンプルさを実現するために、SQLiteは、高い同時実行性、きめ細かいアクセス制御、豊富な機能など、一部の人々が役立つと考える他の特性を犠牲にする必要がありました。組み込み関数、ストアドプロシージャ、難解なSQL言語機能、XMLおよび/またはJava拡張機能、テラバイトまたはペタバイトのスケーラビリティなど)のセット。

sqlite、いつ使用するか

ただし、これはファイルにすぎないため、データを保護するためにパスワードを使用してファイルを暗号化できます。

24
miku

SQLiteにはユーザー名/パスワードの概念がありません。これは、単一のファイルベースのデータベースです。

ただし、Unixでは、データベースファイル自体のアクセス許可を設定することにより、同じマシン上の他のユーザーからデータベースを保護できます。

例えば所有者のアクセスのみを許可する

chmod 700/path/to/sqlitedb

単純なWebアプリケーションで使用されている場合は、Webアプリケーションが制御を提供します。

15
Matt

SQLiteは主に組み込みデータベースエンジンであり、ユーザー名とパスワードを必要とするマルチユーザーデータベースサーバーとして使用することを目的としていません。

データベースファイルは、ユーザーが指定したパスワード/フレーズでいつでも暗号化できると思います。しかし、組み込みDBMSが本格的なアクセス制御を行うことを期待するのは多すぎます。

3
Joey

以前の答えは部分的にしか真実ではありません。認証を必要とするデータベースを持つことができますが、PHPとは別にSQLiteをコンパイルする必要があります。

詳細については、 SQLiteユーザー認証 のドキュメントを参照してください。

2
Carl McDade