Files

1.4 KiB

操作用户

su - openGauss

登录

gsql -d postgres -p 15000
  • 用户和数据库状态一键查询脚本
SELECT 
    u.usename as "用户名",
    d.datname as "数据库名",
    CASE WHEN d.datdba = u.usesysid THEN '所有者' ELSE '使用者' END as "关系类型",
    CASE WHEN u.usesysid = (SELECT datdba FROM pg_database WHERE datname = d.datname) 
         THEN '是' ELSE '否' END as "是否为所有者",
    has_database_privilege(u.usename, d.datname, 'CONNECT') as "连接权限",
    has_database_privilege(u.usename, d.datname, 'CREATE') as "创建表权限"
FROM pg_user u
CROSS JOIN pg_database d
WHERE d.datname NOT LIKE 'template%'
ORDER BY u.usename, d.datname;

查看当前用户权限

SELECT 
    rolname,
    rolcreatedb,
    rolsuper 
FROM pg_roles 
WHERE rolname = current_user;
  • 创建用户
CREATE USER future WITH PASSWORD 'FutureV587?'
  SYSADMIN    -- 授予系统管理员权限
  CREATEDB    -- 授予创建数据库的权限
  CONNECTION LIMIT 100; -- 限制最大连接数为100
  • 创建数据库
CREATE DATABASE futrue
  WITH 
  OWNER = future    -- 指定所有者为 omm
  ENCODING = 'UTF8'  -- 设置编码
  LC_COLLATE = 'en_US.UTF-8' -- 排序规则
  LC_CTYPE = 'en_US.UTF-8'   -- 字符分类
  CONNECTION LIMIT = -1;     -- 连接数限制(-1表示无限制)

退出

\q