通过Web服务器(在HTML浏览器中显示)向用户呈现SQLite DB中的信息。DB由一个与Web服务器无关的小型应用程序一次性加载。用户浏览器无法更改DB数据(这是只读服务)。
由于Web服务器有其自己的用户ID,因此它使用“其他”权限访问SQLite DB文件。出于安全原因,我想将DB文件权限设置为
不幸的是,使用此权限设置,我收到一个警告
如果权限更改为
完整的故事是,我的Web应用程序是用Perl编写的,使用DBD :: SQLite。
由于Web服务器有其自己的用户ID,因此它使用“其他”权限访问SQLite DB文件。出于安全原因,我想将DB文件权限设置为
rw-rw-r--
。不幸的是,使用此权限设置,我收到一个警告
attempt to write a readonly database at line xxx
,该警告指向有关SELECT
事务的行(原则上是只读的)。当然,我没有得到任何结果。如果权限更改为
rw-rw-rw
,则一切正常,但这意味着每个人都可以篡改DB。
是否有任何理由SQLite DB无法进行只读访问?
是否有“幕后”处理需要写入访问权限,即使对于SELECT事务也是如此?
在StackOverflow上查找显示,人们通常抱怨相反的情况:遇到只读访问权限阻止向DB写入。我的目标是保护我的DB免受任何更改尝试。完整的故事是,我的Web应用程序是用Perl编写的,使用DBD :: SQLite。
mode=ro
。 - Bacon Bits