用例:
我有一个Web应用程序,可以在每次测试运行时删除并重新创建测试数据库。我想让它以PG角色执行此操作,该角色不是超级用户,也不是可以随意破坏或创建任何数据库的角色,而是允许删除并创建特定的数据库名称,例如foo_test 。这可能吗?
答案 0 :(得分:1)
您可以使用" SECURITY DEFINER"创建一个功能。用于创建数据库并为其设置权限的选项。当然,它需要在受限角色可以连接的数据库中。
http://www.postgresql.org/docs/9.1/static/sql-createfunction.html
您可以使用SQL函数完成所有操作,但是对于plpgsql来说这很简单。