pgadmin:收到“详细信息:用户没有 CONNECT 权限。”错误

2024-06-25

我在 Mac Yosemite 上使用 pgAdmin III。
我创建了一个角色“discount”和一个数据库“discount”。

在 pgadmin 工具中,如何授予用户“discount”对数据库“discount”的连接权限(以及表读/写权限)?

目前,当我尝试在命令行登录时,我收到此错误:-

davea$ psql -h localhost -d discount -U discount
Password for user discount: 
psql: FATAL:  permission denied for database "discount"
DETAIL:  User does not have CONNECT privilege.

对当前对象的权限

要对表进行读/写访问,您需要使用GRANT command https://www.postgresql.org/docs/current/static/sql-grant.html分 3 个级别:

  1. DATABASE
  2. SCHEMA
  3. 表、函数、序列等

首先,你需要CONNECT数据库权限:

GRANT CONNECT ON DATABASE <dbname> TO <username>;

其次,你需要USAGE数据库内模式的特权(您必须在运行之前连接到数据库):

GRANT USAGE ON SCHEMA <schemaname> TO <username>;

最后,您可以授予对表的权限,假设您希望对架构中的所有表进行通用 DML 和 SELECT,以及其他权限:

GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA <schemaname> TO <username>;
-- and the sequences, for INSERT to work
GRANT USAGE ON ALL SEQUENCES IN SCHEMA <schemaname> TO <username>;
-- and the functions
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA <schemaname> TO <username>;

将来创建的对象的默认权限

你现在必须注意到一些事情。每个数据库、每个模式以及每个对象(表、函数等)都有一个所有者。的所有者是将在其上管理和运行 DDL 命令的用户。一般来说,您应该在以拥有一切的用户身份连接时运行上述所有命令,因为该用户已经拥有所有权限(您可以使用SUPERUSER也是如此,但我建议仅将其保留用于 DBA 任务)。

以上GRANT ... ON ALL ... IN SCHEMA命令将为数据库中已存在的对象授予权限,但不适用于创建的新对象。为此,您可以使用ALTER DEFAULT PRIVILEGES(我将称之为ADP) 命令 https://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html。和以前一样,您应该在以所有者身份连接时运行它,因为您必须记住,仅当新对象的所有者与此处使用的所有者匹配(或在FOR ROLE clause https://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html):

ALTER DEFAULT PRIVILEGES IN SCHEMA <schemaname>
    GRANT SELECT,INSERT,UPDATE,DELETE ON TABLES TO <username>;
-- and the sequences, for INSERT to work
ALTER DEFAULT PRIVILEGES IN SCHEMA <schemaname>
    GRANT USAGE ON SEQUENCES TO <username>;
-- and the functions
ALTER DEFAULT PRIVILEGES IN SCHEMA <schemaname>
    GRANT EXECUTE ON FUNCTIONS TO <username>;

您也可以跳过IN SCHEMA <schemaname>并将其应用于您将来拥有或创建的任何模式。但话又说回来,当心,即使您不提供FOR ROLE <rolename>这意味着它将适用于当前用户已连接,所以只有创建的对象属于该对象<rolename>将考虑 ADP 命令。

为了更好地管理权限,我强烈建议您密切关注哪个用户拥有这些对象。在大多数情况下,我还建议您为数据库中的所有内容只保留一个所有者(除非您是高级用户并且知道自己在做什么),这样权限管理会更容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pgadmin:收到“详细信息:用户没有 CONNECT 权限。”错误 的相关文章

  • 处理续集迁移和初始化的工作流程?

    我不明白续集迁移工作流程是如何工作的 我有一个新建项目 数据库是使用 SQL 脚本设计的 我们用了sequelize auto之后生成模型 我现在需要生成一个迁移文件 以便我可以运行 CLI 来运行 SQL 查询 为本地配置的数据库创建包含
  • 获取登录用户的 AppData\Local 文件夹

    我目前正在使用 Environment GetFolderPath Environment SpecialFolder LocalApplicationData 检索当前用户的AppData Local小路 该程序需要提升的权限 并且在标准
  • psql 的备用输出格式显示每行一列以及列名

    我在 Ubuntu 上使用 PostgreSQL 8 4 我有一个带有列的表格c1通过cN 这些列足够宽 选择所有列会导致一行查询结果多次换行 因此 输出很难阅读 当查询结果仅包含几行时 如果我可以查看查询结果 使得每行的每一列都位于单独的
  • 在 Mac 上通过 Homebrew 安装 PostgreSQL 时出错

    在 Mac OSX 10 11 6 上通过 Homebrew 安装 PostgreSQL 时 出现以下错误 Error The brew link step did not complete successfully The formula
  • 当 SQL 包含变量时在 pgAdmin 中调试 SQL

    在 SQL Server 中 我可以从应用程序中复制 sql 代码并将其粘贴到 SSMS 中 声明并分配 sql 中存在的变量并运行 是的 很棒的调试场景 例如 请注意 我很生疏 语法可能不正确 declare x as varchar 1
  • 与 Postgres 的 TCP 连接安全吗?需要 SSL 吗?

    早上好 我正在浏览 Postgresql 配置文件 最近注意到有一个ssl选项 我想知道什么时候需要这样做 假设您有一个应用程序服务器和一个数据库服务器 不在专用网络内运行 如果用户尝试登录 如果未启用 SSL 应用程序服务器在查找用户密码
  • PostgreSQL、Npgsql 返回 42601:“$1”处或附近的语法错误

    我正在尝试使用 Npgsql 和 或 Dapper 来查询表 但我不断遇到Npgsql PostgresException 42601 syntax error at or near 1 这是我用 NpgsqlCommand 尝试的结果 u
  • Postgres 数据库中特殊的时区处理

    我的环境 I m in 法国巴黎 UTC 1 or CET It s 12am 00 00 我们在2016 年 11 月 25 日 My Postgres数据库托管于亚马逊网络服务 AWS RDS 在eu west 1 region 问题
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • 使用 Sequelize.js 和 PostgreSQL 查询关联模型上的 JSONB 字段

    我有我的两个模型Foo and Bar Foo有一个字段barId 因此有一个Bar与其关联的对象 我可以查询我所有的Foo对象并包括它们的关联Bar对象如此 我正在使用 TypeScript续集打字稿 https github com R
  • 选择仅属于特定部门的用户

    我有下表 其中包含两个字段 即 a 和 b 如下所示 create table employe empID varchar 10 department varchar 10 插入一些记录 insert into employe values
  • 创建新表时 Postgres 客户端锁定

    我正在尝试在 postgres 中创建一个新表 但是当我这样做时 它只是在CREATE TABLE call sudo usermod s bin bash postgres sudo su postgres postgres host p
  • 当验证在另一个表上有条件时,数据库中的唯一性验证

    我在这里问了类似的问题当验证有条件时数据库中的唯一性验证 https stackoverflow com questions 24640182 uniqueness validation in database when validatio
  • 如何列出表外键

    有没有办法使用 SQL 列出给定表的所有外键 我知道表名称 架构 我可以将其插入 您可以通过 information schema 表来完成此操作 例如 SELECT tc table schema tc constraint name t
  • 仅复制输入 CSV 中的某些列?

    我在数据库中创建了一个名为 con 的表 其中有两列名为 date 和 kgs 我正在尝试从复制到此位置 H Sir data reporting hi rpt 的 hi rpt 文件中提取数据 并希望将值存储在数据库的 con 表中 我在
  • 如何查明数据何时插入到 Postgres 中?

    我继承了一个现有的充满数据的 Postgres 数据库 大多数数据都有 created date 列值 一些早期数据是在跟踪之前插入的 是否有一个 Postgres 元数据表隐藏在某处 可以跟踪何时INSERT查询完成了吗 Postgres
  • 在 PostgreSQL 中向日期添加月份显示语法错误

    我使用的是Postgres 9 0版本 我想在日期中添加一些月份来计算新日期并在表中更新 这里要添加的月份数将是整数变量 我的代码如下 declare numberofmonths smallint 5 update salereg1 se
  • Grib2 到 PostGIS 栅格——有人让它工作吗?

    我有一个应用程序需要导入美国国家气象局表面分析 这些分析分布为grib2 http en wikipedia org wiki GRIB文件 我想将它们提取到 PostGIS 2 0 栅格中 进行一些计算和建模 并在 GeoServer 中
  • 时态数据库设计,有一些变化(实时行与草稿行)

    我正在考虑实现对象版本控制 同时需要同时拥有活动对象和草稿对象 并且可以利用某人在这方面的经验的见解 因为我开始怀疑是否有可能在没有潜在可怕的黑客攻击的情况下实现这一点 为了示例 我将把它分解为带有标签的帖子 但我的用例更一般 涉及缓慢改变
  • 在一个命令中选择或插入一行

    我使用的是 PostgreSQL 9 0 我有一个表 其中只有一个人工键 自动递增序列 和另一个唯一键 是的 这个表是有原因的 我想通过另一个键查找 ID 或者如果它不存在 则插入它 SELECT id FROM mytable WHERE

随机推荐

  • 用 np.savez 存储字典会产生意想不到的结果?

    我可以使用 np savez 存储字典吗 结果令人惊讶 至少对我来说 而且我找不到通过密钥取回数据的方法 In 1 a 0 A array 1 2 3 B array 4 5 6 In 2 a Out 2 0 A array 1 2 3 B
  • Identity Server 4/nativescript 挂起

    我有以下客户 new Client ClientId nativeapptest ClientName Native App Test Enabled true RequireClientSecret false AllowedGrantT
  • malloc() 与 HeapAlloc()

    malloc 和 HeapAlloc 有什么区别 据我了解malloc从堆中分配内存 就像HeapAlloc一样 对吧 那么区别是什么呢 实际上 malloc 和其他 C 运行时堆函数 是模块相关的 这意味着如果您在一个模块 即 DLL 的
  • Wix 自定义操作设置值从 CA 到 wix

    在延迟 使用 impoersonate no 将值发送到 WIX 到 CA 时 我使用设置属性和值 并使用 session CustomActionData key 在 CA 中收集数据 有什么办法可以将数据从 CA 发送回 WIX
  • 如何关闭RISC-V压缩指令?

    当我使用 riscv64 unknown elf gcc 时 选项之间几乎没有区别 march rv64g and march rv64gc march 64g将尽可能在标准库函数 例如 printt 中使用 RVC 代码 但不会在我自己的
  • 在 Scala REPL 中访问包私有方法

    假设我有一个private stuff method Stuff something in org my stuff 我可以在 Scala REPL 中做些什么 以便我可以调用Stuff something没有得到错误error value
  • 创建交互式事件调度程序

    我正在尝试创建具有类似布局的内容this http visitors2 eventgenie com Institute2013 f 1 schedule日程页面 另请参阅随附的屏幕截图 所以我需要的是 调度程序顶部的 类别 垂直分隔线 调
  • 如何使用 Jackson 创建这个 json 字符串?

    这是我想要的输出 node type community field incentives und value fun value nice field community email und value email protected c
  • 如何使用 cocos2d 在 iphone 应用程序中使用 MYSQL 数据库连接?

    我正在做一个项目 我需要连接MYSQL数据库 我在我的项目中成功连接SQLite 使用cocos2d 但是我无法在我的项目中连接MYSQL数据库 我任何人都喜欢这个而不是帮助我如何连接 给我必要的信息 您将无法直接从 iPhone 连接到
  • 使用 Rxjava Android 从 Activity 更新片段

    我有一个简单的用例 活动 1 创建片段 1 fragment1 创建后通知 Activity 它已创建并更新其 Activity1 视图 收到通知后的活动 1 更新片段 1 视图 我正在使用 rxandroid 子库rxlifecycle组
  • 我可以从 R Tools for Visual Studio 中运行 Shiny 应用程序吗

    如果我使用的话 是否可以从 Visual Studio 中运行 Shiny 应用程序Visual Studio 的 R 工具 RTVS 如果是 怎么办 我以为没有 结果发现有isRTVS 中的 运行闪亮应用程序 按钮
  • 来自 wwwroot 外部的图像不显示(尽管映射)

    在我的 ColdFusion 应用程序中 我想将 wwwroot 之外的图像保留在以下文件夹中 C extSite stdImages 我在 wwwroot WEB INF jrun web xml 中创建了一个映射 如下所示
  • 将强化的 data.frame 转换回 sf 对象

    五十斯塔特包提供了一张很棒的美国地图 其中有夏威夷和阿拉斯加 如下图所示 对象五十 州已经得到加强 可以与 ggplot2 一起使用 但是 我想使用 geom sf 将其绘制为 sf 对象 作为一个更普遍的问题 将强化的 data fram
  • 构建发行版本时更改常量值

    我正在使用 ADT for android 在 eclipse 中进行开发 在我的应用程序中 我有一些常量可以帮助我轻松调试我的应用程序 作为一个例子 我有 public static final boolean DEBUG TOAST L
  • 多列上不区分大小写的组

    无论如何 是否可以执行 LINQ2SQL 查询来执行类似的操作 var result source GroupBy a gt new a Column1 a Column2 or var result from s in source gr
  • 是否可以在 Hibernate 中使用分析函数?

    有没有办法在 Hibernate 中使用类似 sql server 的分析函数 就像是 select foo from Foo foo where f x max f x over partition by f y 您正在寻找本机 SQL
  • python中不完整的gamma函数?

    the scipy special gammainc第一个参数不能取负值 python 中还有其他实现吗 我当然可以进行手动集成 但我想知道是否已经存在好的替代方案 Correct result 1 Gamma 1 1 0 85 Use S
  • Rscript 正在绘制 PDF

    我有一个简单的R http en wikipedia org wiki R 28programming language 29脚本 当它通过 Rscript exe 运行时 默认情况下它会绘制为 PDF 文件 我希望脚本打开一个绘图窗口 我
  • CsvHelper 自定义分隔符

    在 CsvHelper 的早期版本中 我可以像这样设置默认分隔符 using var csv new CsvReader reader CultureInfo CurrentCulture csv Configuration Delimit
  • pgadmin:收到“详细信息:用户没有 CONNECT 权限。”错误

    我在 Mac Yosemite 上使用 pgAdmin III 我创建了一个角色 discount 和一个数据库 discount 在 pgadmin 工具中 如何授予用户 discount 对数据库 discount 的连接权限 以及表读