我是postgresql的新手,正在尝试找出如何在运行web应用程序时最好地保护我的数据库。
在MySQL中,我倾向于使用管理用户来创建数据库、创建表格、修改模式、删除表格等所有不应在数据库被某些应用程序持续使用时发生的活动。然后,我有第二个用户(每个应用程序一个),该用户拥有应用程序所需的权限,如插入、更新等。这避免了应用程序错误/黑客攻击造成灾难性后果的可能性。
现在我正在试图找出如何在Postgres中执行类似的操作。与MySQL不同,Postgres数据库似乎有一个“所有者”。如果我使用上述计划,管理用户是否应拥有所有应用程序的所有数据库?还是这里有一些最佳实践?
补充:我刚刚发现授予权限“所有表”似乎意味着“当前定义的所有表”,并且不包括未来的表。与MySQL不同,“对foo.*”表示所有当前和未来的表。这正确吗?在授予语句中是否有一种方法也包括未来的表,还是我必须每次重新执行它?
在MySQL中,我倾向于使用管理用户来创建数据库、创建表格、修改模式、删除表格等所有不应在数据库被某些应用程序持续使用时发生的活动。然后,我有第二个用户(每个应用程序一个),该用户拥有应用程序所需的权限,如插入、更新等。这避免了应用程序错误/黑客攻击造成灾难性后果的可能性。
现在我正在试图找出如何在Postgres中执行类似的操作。与MySQL不同,Postgres数据库似乎有一个“所有者”。如果我使用上述计划,管理用户是否应拥有所有应用程序的所有数据库?还是这里有一些最佳实践?
补充:我刚刚发现授予权限“所有表”似乎意味着“当前定义的所有表”,并且不包括未来的表。与MySQL不同,“对foo.*”表示所有当前和未来的表。这正确吗?在授予语句中是否有一种方法也包括未来的表,还是我必须每次重新执行它?