postgres 9.6 set授予数据库用户权限

没有人392

因此,这应该很容易,但是我无法弄清楚。我正在使用postgres 9.6,我有一个postgres用户和一个数据库。我想赋予该用户仅在给定数据库上执行任何操作的能力。我尝试了以下不起作用的命令:

GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
ALTER DATABASE mydatabase OWNER TO myuser;

该文档似乎很清楚,所有特权都应包括更新,插入等,但是当我登录时,该用户实际上无法执行任何操作。我也看过以下示例:

GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO user_name;

但是我不确定如何将其限制为一个数据库?任何帮助,我们将不胜感激。

劳伦兹·阿尔伯

在PostgreSQL中,允许用户使用一条语句访问数据库中所有对象的唯一方法是赋予他们超级用户特权。但是您不应该这样做。

分阶段进行:

  1. 访问数据库:

    默认情况下,每个人都可以访问所有数据库,您可以在中进行配置pg_hba.conf如果已删除PUBLIC数据库的权限,请使用

    GRANT ALL ON DATABASE ... TO ...;
    
  2. 访问架构:

    对于所有模式,运行

    GRANT ALL ON SCHEMA ... TO ...;
    
  3. 访问表:

    对于所有模式,运行

    GRANT ALL ON ALL TABLES IN SCHEMA ... TO ...;
    
  4. 访问序列:

    对于所有架构,

    GRANT ALL ON ALL SEQUENCES IN SCHEMA ... TO ...;
    
  5. 访问功能:

    默认情况下,使用EXECUTE特权创建函数PUBLIC如果已删除,请授予访问权限

    GRANT ALL ON ALL FUNCTIONS IN SCHEMA ... TO ...;
    

还有其他不常用的东西,例如大对象或外部服务器。您还必须授予这些特权。GRANT有关详细信息,请参阅文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

向Postgres中的外部数据库表授予本地用户权限

Postgres撤消用户的数据库访问权限

Heroku模式加载:数据库“ postgres”用户的权限被拒绝

为 Postgres 中的特定数据库授予默认权限

数据库“postgres”的权限被拒绝详细信息:用户没有连接权限

Cloud9上的Postgres数据库设置要求输入sudo密码

postgres数据库:权限不足,关系表的权限被拒绝

安装DBLink for Postgres 9

撤消对角色的Postgres数据库的访问权限

数据库值为 ["", "5", "1", "2", "8", "6", "9"] 在 Rails Console 中显示为 "[\"\", \"5\", \"1\"、\"2\"、\"8\"、\"6\"、\"9\"]"?

数据库用户“ postgres”不是安装用户

如何在 ASP.NET MVC 中使用 EntityFramework6.Npgsql 从 Postgres 数据库获取数据?

用户可以随时连接到数据库[POSTGRES]

postgres使用数据库密码或用户密码

如何仅授予特定用户访问数据库的权限?

向mysql用户授予将来数据库的权限

将数据库的所有定义权限授予用户

撤消授予用户对数据库的访问权限

VPS OS Debian 6:如何设置数据库。Bind9用于多个IP(初学者)

查询postgres数据库

授予用户创建新数据库的权限,但拒绝现有数据库的权限

Xcode 6与iOS 9?

Slickgrid示例6(远程数据)和示例9(重新排序)

Laravel 6数据库连接错误。用户被拒绝访问

将Rails 6与Postgres数据库一起使用时,是否有理由使用字符串数据类型?

Postgres SQL 还原权限被拒绝创建和更改数据库

我的ubuntu用户无法访问dev用户在postgres中为rails创建的数据库

在Postgres中使用少于9am的时间删除所有数据

访问gitlab postgres omnibus数据库