postgresq特权

2024-04-28 22:59:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个数据库服务器,用户可以访问。我们的数据库驻留在此服务器上。它是使用Postgresql创建的。我们通过python脚本在这个数据库中的不同表上创建表并执行其他操作。现在,python脚本、数据库表和数据库都在同一台服务器上

基本上,任何有权访问服务器的人都可以用其名称访问数据库。用户必须将名称放入python脚本中才能获得访问权限

我们如何给不同的用户特权?因此,即使用户有权访问数据库服务器,我们也希望只有选定的用户才能更改数据库。我们怎样才能做到这一点?我找到了这个链接-https://www.postgresql.org/docs/9.0/static/user-manag.html。不过,我担心的是,任何使用python脚本并了解数据库名称的人都能够修改表

谢谢你的意见


Tags: 用户httpsorg服务器脚本名称数据库权限
1条回答
网友
1楼 · 发布于 2024-04-28 22:59:13

这有点不清楚,也太宽泛了,但我会试着告诉你其中的诀窍:

  1. 数据库中必须有多个用户:

    • 用于系统管理的超级用户

    • 可以在数据库或至少在特定模式中创建对象的用户

    • 有权阅读或根据需要修改表格的应用程序用户

    可以有更多的用户,例如,只有读取表的权限而没有修改表的权限的用户

    如果应用程序创建自己的对象,那么应用程序用户和对象所有者通常是同一个用户-方便,但从安全角度来看并不理想

  2. 必须限制对pg_hba.conf中数据库的访问:

    • 超级用户只能在local连接中使用

    • 应该只允许对象所有者从部署应用程序的位置进行连接

    • 应用程序用户只能从运行应用程序的位置进行连接

这样,拥有创建数据库的Python脚本并不意味着人们可以从任何地方使用它来破坏数据库

数据库的安全性远不止这些;你应该阅读文档

相关问题 更多 >