admin

docker-compose安装openguass和配置用户

admin docker技术 2025-06-01 624浏览 0

创建opengauss.yml文件

services:

  opengauss:

    image: enmotech/opengauss:6.0.0

    container_name: OpenGauss

    environment:

      - GS_PASSWORD=Tuxun123@     #默认的管理员用户omm也是此密码

      - GS_USERNAME=tuxun         #可根据需要创建

    ports:

      - "5432:5432"

    volumes:

      - /etc/localtime:/etc/localtime

      - ./opengauss/data:/var/lib/opengauss

      #- ./opengauss/config/gscgroup_omm.cfg:/usr/local/opengauss/etc/gscgroup_omm.cfg

    restart: always

    privileged: true

    user: root


启动:
docker-compose -f opengauss.yml up -d

OpenGauss 创建用户和数据库指南

一、创建新用户

1. 使用管理员账户登录

首先用管理员账户(如 omm )登录:

gsql -d postgres -U omm -W

image.png

2. 创建用户命令

-- 创建普通用户(无创建数据库权限)
CREATE USER 用户名 WITH PASSWORD '密码';
-- 创建有创建数据库权限的用户
CREATE USER 用户名 WITH CREATEDB PASSWORD '密码';
-- 创建管理员用户(最高权限)
CREATE USER 用户名 WITH SYSADMIN PASSWORD '密码';

3. 示例

-- 创建普通用户
CREATE USER dev_user WITH PASSWORD 'Dev@123456';
-- 创建有建库权限的用户
CREATE USER db_creator WITH CREATEDB PASSWORD 'Creator@123';
-- 创建管理员用户
CREATE USER admin_user WITH SYSADMIN PASSWORD 'Admin@123456';

image.png

二、创建新数据库

1. 基本创建命令

-- 创建数据库(默认所有者是当前用户)
CREATE DATABASE 数据库名;
-- 创建数据库并指定所有者
CREATE DATABASE 数据库名 OWNER 用户名;

2. 完整参数示例

CREATE DATABASE mydb 
 OWNER db_creator
 TEMPLATE template0
 ENCODING 'UTF8'
 LC_COLLATE 'en_US.UTF-8'
 LC_CTYPE 'en_US.UTF-8'
 CONNECTION LIMIT 50;

三、用户授权管理

1. 授予数据库权限

-- 授予用户对数据库的所有权限
GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;
-- 授予特定权限
GRANT CONNECT, CREATE, TEMPORARY ON DATABASE 数据库名 TO 用户名;

2. 授予模式(Schema)权限

-- 授予模式使用权限
GRANT USAGE ON SCHEMA 模式名 TO 用户名;
-- 授予模式中所有表的查询权限
GRANT SELECT ON ALL TABLES IN SCHEMA 模式名 TO 用户名;

3. 授予表权限

-- 授予表的所有权限
GRANT ALL PRIVILEGES ON TABLE 表名 TO 用户名;
-- 授予特定权限(如 SELECT, INSERT, UPDATE 等)
GRANT SELECT, INSERT ON TABLE 表名 TO 用户名;

四、实用操作示例

1. 完整创建用户和数据库流程

-- 1. 创建用户
CREATE USER app_user WITH PASSWORD 'App@123456';
-- 2. 创建数据库并指定所有者
CREATE DATABASE app_db OWNER app_user
;-- 3. 授予权限(可选)
GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;

2. 修改用户密码

ALTER USER 用户名 WITH PASSWORD '新密码';

3. 删除用户和数据库

-- 删除数据库(需要先断开所有连接)DROP DATABASE 数据库名;-- 删除用户(需要先撤销所有权限)DROP USER 用户名;

五、查看现有用户和数据库

1. 查看所有用户

SELECT usename FROM pg_user;\du  -- 更详细的用户列表

2. 查看所有数据库

SELECT datname FROM pg_database;\l   -- 更详细的数据库列表

六、注意事项

  1. 密码复杂度:OpenGauss 默认要求密码包含大小写字母、数字和特殊字符

  2. 权限最小化:遵循最小权限原则,只授予必要的权限

  3. 连接限制:生产环境应考虑设置连接限制

  4. 模板数据库:创建数据库时可指定 TEMPLATE template0 或 TEMPLATE template1

  5. 字符编码:建议使用 UTF8 编码以确保兼容性

七、通过客户端工具创建

如果使用 Data Studio 等图形化工具:

  1. 连接数据库后右键点击"用户" → "新建用户"

  2. 填写用户名、密码并设置权限

  3. 右键点击"数据库" → "新建数据库"

  4. 填写数据库信息并选择所有者


版权声明

本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。