【发布时间】:2009-11-27 07:59:56
【问题描述】:
我在 linux 机器上使用 sqlite3,我得到的数据库没有用户名和密码。我可以设置相同的用户名和密码吗?
【问题讨论】:
标签: sqlite database-connection
我在 linux 机器上使用 sqlite3,我得到的数据库没有用户名和密码。我可以设置相同的用户名和密码吗?
【问题讨论】:
标签: sqlite database-connection
不,sqlite3 数据库是非常轻量级的系统。他们不需要服务器,所有数据都存储在一个文件中。 sqlite/sqlite3 包不支持用户名/密码。
为了实现简单性,SQLite 不得不牺牲其他一些人认为有用的特性,例如高并发、细粒度访问控制、丰富的内置函数集、存储过程、深奥的 SQL 语言特性、XML 和/或 Java 扩展、TB 或 PB 可扩展性等等。
但是,由于它只是一个文件,您可以使用密码对文件进行加密以保护您的数据。
【讨论】:
之前的答案只是部分正确。您可以拥有需要身份验证的数据库,但您必须将 SQLite 与 PHP 分开编译。
有关详细信息,请参阅SQLite User Authentication 文档。
【讨论】:
SQLite 没有用户名/密码的概念。它只是一个基于单个文件的数据库。
但是,在 Unix 上,您可以通过设置数据库文件本身的权限来保护您的数据库免受同一台计算机上的其他用户的影响。
例如只允许所有者访问
chmod 700 /path/to/sqlitedb
如果它用于简单的 Web 应用程序,那么 Web 应用程序将提供控制。
【讨论】:
SQLite 主要是一个嵌入式数据库引擎,不打算用作需要用户名和密码的多用户数据库服务器。
我猜你总是可以使用一些用户提供的密码/短语来加密数据库文件。但是期望嵌入式 DBMS 能够实现全面的访问控制是太过分了。
【讨论】: