pgadmin在ubuntu上如何设置权限
导读:在 Ubuntu 上使用 pgAdmin 设置权限的完整步骤 一 前置准备 安装并启动 PostgreSQL 与 pgAdmin4,确保能在本机或浏览器访问 pgAdmin(常见为 http://服务器IP:5050)。 使用具有管理员权...
在 Ubuntu 上使用 pgAdmin 设置权限的完整步骤
一 前置准备
- 安装并启动 PostgreSQL 与 pgAdmin4,确保能在本机或浏览器访问 pgAdmin(常见为 http://服务器IP:5050)。
- 使用具有管理员权限的账号(如 postgres)登录 pgAdmin,后续所有权限操作均通过该账号在 pgAdmin 中执行或验证。
- 若需远程管理,先在 PostgreSQL 配置中开启监听和客户端认证(如修改 postgresql.conf 的 listen_addresses 与 pg_hba.conf 的客户端规则),再重启数据库服务。
二 在 pgAdmin 中创建用户与角色
- 打开左侧 Servers,连接到目标数据库实例。
- 展开实例节点,进入 Login/Group Roles(登录/组角色),右键选择 Create → Login/Group Role…。
- 在 General 填写名称;在 Definition 设置密码与可登录属性;在 Privileges 开关 Can login、必要时勾选 Superuser / Create DB 等;保存。
- 重复以上步骤创建多个角色(如只读用户、应用用户等),后续通过“编辑”调整密码与属性。
三 授予数据库与模式权限
- 授予数据库权限
- 在左侧展开目标数据库,右键 Properties → Security → Privileges,新增条目选择目标角色,勾选需要的权限(如 CONNECT、CREATE、TEMPORARY),保存。
- 或在 Query Tool 执行:
- 授予连接:GRANT CONNECT ON DATABASE dbname TO role;
- 授予全部(慎用):GRANT ALL PRIVILEGES ON DATABASE dbname TO role;
- 回收公共默认权限(提高安全性)
- 在目标数据库中执行:REVOKE CREATE ON SCHEMA public FROM public;
- 授予模式权限
- 在目标数据库中执行:GRANT USAGE ON SCHEMA schema_name TO role;
- 授予表权限
- 对现有表:GRANT SELECT/INSERT/UPDATE/DELETE ON ALL TABLES IN SCHEMA schema_name TO role;
- 设置默认权限(对新对象自动生效)
- 以对象属主(如 appuser)在目标数据库中执行:
- ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT USAGE ON SCHEMAS TO readonlyuser;
- ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO readonlyuser;
- 以对象属主(如 appuser)在目标数据库中执行:
- 只读用户快速示例(在目标数据库内执行)
- CREATE USER readonlyuser WITH PASSWORD ‘******’;
- GRANT CONNECT ON DATABASE appdb TO readonlyuser;
- GRANT USAGE ON SCHEMA appuser TO readonlyuser;
- GRANT SELECT ON ALL TABLES IN SCHEMA appuser TO readonlyuser;
- 以 appuser 身份执行默认权限,使后续新建表对只读用户自动只读。
四 验证与常见问题
- 验证方式
- 在 pgAdmin 中切换到新建角色,尝试连接目标数据库与访问指定 schema/表;或在 Query Tool 以该角色执行相应操作,确认权限是否生效。
- 常见问题与处理
- 新建用户连不上数据库:检查目标数据库是否授予了 CONNECT,以及 pg_hba.conf 是否允许该来源 IP/用户使用指定认证方式;必要时调整规则并重启数据库。
- 新建用户看不到表:确认已对目标 schema 授予 USAGE,并对表授予相应 SELECT/INSERT/UPDATE/DELETE;若是新建表无权限,检查是否设置了正确的 ALTER DEFAULT PRIVILEGES(且应由对象属主设置)。
- 权限不生效:在 pgAdmin 中执行 GRANT 后无需额外“应用”,如仍异常,复核对象属主、搜索路径 search_path 与是否使用了正确的数据库/模式上下文。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: pgadmin在ubuntu上如何设置权限
本文地址: https://pptw.com/jishu/750401.html
