我们有一个数据库服务器,用户可以访问。我们的数据库驻留在此服务器上。它是使用Postgresql创建的。我们通过python脚本在这个数据库中的不同表上创建表并执行其他操作。现在,python脚本、数据库表和数据库都在同一台服务器上
基本上,任何有权访问服务器的人都可以用其名称访问数据库。用户必须将名称放入python脚本中才能获得访问权限
我们如何给不同的用户特权?因此,即使用户有权访问数据库服务器,我们也希望只有选定的用户才能更改数据库。我们怎样才能做到这一点?我找到了这个链接-https://www.postgresql.org/docs/9.0/static/user-manag.html。不过,我担心的是,任何使用python脚本并了解数据库名称的人都能够修改表
谢谢你的意见
这有点不清楚,也太宽泛了,但我会试着告诉你其中的诀窍:
数据库中必须有多个用户:
用于系统管理的超级用户
可以在数据库或至少在特定模式中创建对象的用户
有权阅读或根据需要修改表格的应用程序用户
可以有更多的用户,例如,只有读取表的权限而没有修改表的权限的用户
如果应用程序创建自己的对象,那么应用程序用户和对象所有者通常是同一个用户-方便,但从安全角度来看并不理想
必须限制对
pg_hba.conf
中数据库的访问:超级用户只能在
local
连接中使用应该只允许对象所有者从部署应用程序的位置进行连接
应用程序用户只能从运行应用程序的位置进行连接
这样,拥有创建数据库的Python脚本并不意味着人们可以从任何地方使用它来破坏数据库
数据库的安全性远不止这些;你应该阅读文档
相关问题 更多 >
编程相关推荐