可以通过Python中的所有其他过程锁定SQLITE3内存数据库



我想要一个可以坐在内存中的临时数据库,只有创建的应用程序才能写入它。数据不是秘密的,因此它不是一个per-se的加密问题,我只想确保创建数据库的Python程序可以写入其中,以便表格中的数据无法由任何其他程序或用户更改。/p>

如果我做

conn = sqlite3.connect(':memory:')

这是否意味着其他任何人都可以使用conn变量在内存数据库中调用相同的功能?还有其他方法可以写入内存数据库吗?

这是默认行为;

import sqlite3
conn = sqlite3.connect(':memory:')

在过程中为您提供了一个新的内存数据库。如果另一个进程运行相同的代码,他们将获得自己的内存数据库。如果您再次执行sqlite3.connect(':memory:'),您甚至可以在过程中获得第二个内存数据库!

默认情况下,另一个带有相同凭据的过程可以继续读取和写入您的内存。不过,这样做几乎没有合理的理由。这是恶意软件的领域,而不是程序偶然可以做的事情。

要免受这些恶意流程的安全,您可以通过其自己的用户帐户运行您的程序。

最新更新