PostgreSQL:是否可以创建允许创建数据库的角色或用户,但只能使用特定的名称?

时间:2012-03-29 20:37:45

标签: database postgresql permissions

用例:

我有一个Web应用程序,可以在每次测试运行时删除并重新创建测试数据库。我想让它以PG角色执行此操作,该角色不是超级用户,也不是可以随意破坏或创建任何数据库的角色,而是允许删除并创建特定的数据库名称,例如foo_test 。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以使用" SECURITY DEFINER"创建一个功能。用于创建数据库并为其设置权限的选项。当然,它需要在受限角色可以连接的数据库中。

http://www.postgresql.org/docs/9.1/static/sql-createfunction.html

您可以使用SQL函数完成所有操作,但是对于plpgsql来说这很简单。