我想要一个可以位于内存中的临时数据库,并且只有创建它的应用程序才能写入它。数据不是秘密,所以它本身不是一个加密问题,我只想确保只有创建数据库的 python 程序可以写入它,以便表中的数据不能被任何其他程序或用户更改。
如果我做
conn = sqlite3.connect(':memory:')
这是否意味着其他任何人都可以通过使用conn
变量在内存数据库中调用它?还有其他方法可以写入内存数据库吗?
这是默认行为;
import sqlite3
conn = sqlite3.connect(':memory:')
在您的进程中为您提供一个新的内存数据库。如果另一个进程运行相同的代码,它们将获得自己的内存数据库。如果您再执行sqlite3.connect(':memory:')
一次,您甚至可以在您的进程中获得第二个内存数据库!
默认情况下,另一个使用相同凭据运行的进程可以继续读取和写入您的内存。这样做没有什么正当理由。这是恶意软件的领域,不是程序可以偶然做到的。
为了避免这些恶意进程,您可以在自己的用户帐户下运行您的程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句