Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何授予其他用户写入SQLite数据库的权限?_Sqlite - Fatal编程技术网

如何授予其他用户写入SQLite数据库的权限?

如何授予其他用户写入SQLite数据库的权限?,sqlite,Sqlite,我遇到了一个与SQLite数据库权限相关的奇怪错误 我输入bash rm -f test.db sqlite3 test.db 'CREATE TABLE t (qwe, qqq)' chmod 666 test.db sudo -u another-user sqlite3 test.db 'INSERT INTO t VALUES (4, 2)' 它打印 错误:无法打开数据库文件 如果我将test.db文件的所有者更改为另一个用户,它将打印相同的内容。 但是,如果我试图代表root或我插入

我遇到了一个与SQLite数据库权限相关的奇怪错误

我输入bash

rm -f test.db
sqlite3 test.db 'CREATE TABLE t (qwe, qqq)'
chmod 666 test.db
sudo -u another-user sqlite3 test.db 'INSERT INTO t VALUES (4, 2)'
它打印

错误:无法打开数据库文件

如果我将
test.db
文件的所有者更改为
另一个用户
,它将打印相同的内容。 但是,如果我试图代表root或我插入记录,则没有任何错误 错误,并且已成功插入

有什么问题吗

getfacl test.db
的输出如下

AppArmor没有与SQLite相关的配置文件,SeLinux已禁用。我是
在Ubuntu 16.04上进行实验。SQLite的版本是3.11.0。

这里的问题似乎不是文件权限,而是目录。检查放置数据库文件的目录是否对另一个用户具有适当的权限

哦,谢谢!当我授予另一个用户对该文件夹的写访问权限时,它解决了这个问题。SQLite似乎在数据库文件附近创建临时文件
# file: test.db
# owner: mymedia
# group: mymedia
user::rw-
group::rw-
other::rw-