我是 PostgreSQL 新手,在查找有关如何授予用户对其所拥有的数据库的权限的信息时遇到了一些麻烦。我读过一些资料,其中说所有者拥有所有权限,但这似乎对我不起作用。我仍然必须授予权限才能运行 select 语句。
我也读过不少文章说 PostgreSQL 根本不支持同时授予数据库中的多个表权限,所以我希望它们只是过时了。
以下是我目前所做的工作:
# Create the user
createuser -SDRPE demo
# Create the database
createdb demo -O demo
# Import schema
psql -f myfile.sql demo
# Grant Permissions
???
有人能告诉我最好的解决方法吗?目前,我正在 Rake 任务中编写所有这些内容,因此从技术上讲,我可以检索数据库中的所有表并遍历它们,但感觉这是一个非常笨拙的解决方案。我似乎遗漏了一些东西。任何想法/评论/链接都将不胜感激。
编辑1:需要简要说明的是,所有这些命令均以 root 身份运行,root 是数据库中的超级用户,并且具有IDENT SAMEUSER
指定的身份验证pg_hba.conf
,以防万一产生任何差异。
答案1
你能试一下吗
psql dbname username < filename.sql
所以你会用
psql demo demo < myfile.sql
我不确定您的 sql 文件去哪儿了,因为您没有在脚本中指定 db。
答案2
例如:
几乎所有内容:将数据库 demo 的所有权限授予 demo;
授予一些简单的选择:授予对表 foo 的选择权给 demo;
超过选择:授予 demo 对表 foo 的选择、插入、更新、删除权限;
更多信息请点击这里: http://www.postgresql.org/docs/8.3/static/sql-grant.html