sqlite3内存中数据库是否可以被python中的所有其他进程锁定以供写入

sqlite3内存中数据库是否可以被python中的所有其他进程锁定以供写入,python,sqlite,Python,Sqlite,我想要一个临时数据库,它可以存放在内存中,并且只有创建它的应用程序才能写入它。数据不是秘密的,因此它本身不是一个加密问题,我只想确保只有创建数据库的python程序才能写入数据,这样表中的数据就不会被任何其他程序或用户更改 如果我这样做 conn = sqlite3.connect(':memory:') 这是否意味着其他任何人都可以使用conn变量调用相同的内存数据库?是否有其他方式写入内存中的数据库?这是默认行为 import sqlite3 conn = sqlite3.connect(

我想要一个临时数据库,它可以存放在内存中,并且只有创建它的应用程序才能写入它。数据不是秘密的,因此它本身不是一个加密问题,我只想确保只有创建数据库的python程序才能写入数据,这样表中的数据就不会被任何其他程序或用户更改

如果我这样做

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

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

这是默认行为

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

默认情况下,另一个使用相同凭据运行的进程可以继续读取和写入内存。但是这样做没有什么正当的理由;这是恶意软件的领域,而不是一个程序偶然做的事情


为了避免这些恶意进程,您可以使用自己的用户帐户运行您的程序。

'另一个进程以同一用户的身份运行,可以继续读取您的内存。'谢谢,我不担心任何人可以读取数据,这不重要,我只想理想地确保他们不会写;如果有人能读懂记忆,这是否意味着他们也能对其进行书写?我知道你回答了我的问题,这个补充只是为了让我有更多的理解。我更新了答案:默认情况下,在大多数系统上,同一用户运行的其他进程也可以写入内存。他们还可以做很多其他恶意的事情。不过,这一切都不是偶然发生的,只有恶意软件才会这样做。