• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

openGauss GRANT授权

武飞扬头像
KingCruel
帮助1

GRANT 官网 

● SYSADMIN:允许用户创建数据库,创建表空间,允许用户创建用户/角色,允许用户查看、删除审计日志,允许用户查看其它用户的数据
● MONADMIN:允许用户对系统模式dbe_perf及该模式下的监控视图或函数进行查看和权限管理,
● OPRADMIN:允许用户使用Roach工具执行数据库备份和恢复
● POLADMIN:允许用户创建资源标签、创建动态数据脱敏策略和统一审计策略
● AUDITADMIN:允许用户查看、删除审计日志
● CREATEDB:允许用户创建数据库
● USEFT:允许用户创建外表
● CREATEROLE:允许用户创建用户/角色
● INHERIT:允许用户继承所在组的角色的权限
● LOGIN:允许用户登录数据库
● REPLICATION:允许用户执行流复制相关操作

官网示例

  1.  
    postgres=# CREATE USER joe PASSWORD 'Bigdata@123';
  2.  
    postgres=# GRANT ALL PRIVILEGES TO joe;
  3.  
    授权成功后,用户joe会拥有sysadmin的所有权限。
  4.  
    示例:将对象权限授权给用户或者角色。
  5.  
    撤销joe用户的sysadmin权限,然后将模式tpcds的使用权限和表tpcds.reason的所有权限授权给用户joe。postgres=# REVOKE ALL PRIVILEGES FROM joe;
  6.  
    postgres=# GRANT USAGE ON SCHEMA tpcds TO joe;
  7.  
    postgres=# GRANT ALL PRIVILEGES ON tpcds.reason TO joe;
  8.  
    授权成功后,joe用户就拥有了tpcds.reason表的所有权限,包括增删改查等权限。
  9.  
    将tpcds.reason表中r_reason_sk、r_reason_id、r_reason_desc列的查询权限,r_reason_desc的更新权限授权给joe。postgres=# GRANT select ( r_reason_sk,r_reason_id,r_reason_desc ),update ( r_reason_desc ) ON tpcds.reason TO joe;
  10.  
    授权成功后,用户joe对tpcds.reason表中r_reason_sk,r_reason_id的查询权限会立即生效。如果joe用户需要拥有将这些权限授权给其他用户的权限,可以通过以下语法对joe用户进行授权。
  11.  
    postgres=# GRANT select ( r_reason_sk,r_reason_id ) ON tpcds.reason TO joe WITH GRANT OPTION;
  12.  
    将数据库postgres的连接权限授权给用户joe,并给予其在postgres中创建schema的权限,而且允许joe将此权限授权给其他用户。
  13.  
    postgres=# GRANT create,connect on database postgres TO joe WITH GRANT OPTION;
  14.  
    创建角色tpcds_manager,将模式tpcds的访问权限授权给角色tpcds_manager,并授予该角色在tpcds下创建对象的权限,不允许该角色中的用户将权限授权给其他人。
  15.  
    postgres=# CREATE ROLE tpcds_manager PASSWORD 'Bigdata@123';
  16.  
    postgres=# GRANT USAGE,CREATE ON SCHEMA tpcds TO tpcds_manager;
  17.  
    将表空间tpcds_tbspc的所有权限授权给用户joe,但用户joe无法将权限继续授予其他用户。
  18.  
    postgres=# CREATE TABLESPACE tpcds_tbspc RELATIVE LOCATION 'tablespace/tablespace_1';
  19.  
    postgres=# GRANT ALL ON TABLESPACE tpcds_tbspc TO joe;
  20.  
    示例:将用户或者角色的权限授权给其他用户或角色。
  21.  
    创建角色manager,将joe的权限授权给manager,并允许该角色将权限授权给其他人。postgres=# CREATE ROLE manager PASSWORD 'Bigdata@123';
  22.  
    postgres=# GRANT joe TO manager WITH ADMIN OPTION;
  23.  
    创建用户senior_manager,将用户manager的权限授权给该用户。postgres=# CREATE ROLE senior_manager PASSWORD 'Bigdata@123';
  24.  
    postgres=# GRANT manager TO senior_manager;
  25.  
    撤销权限,并清理用户。postgres=# REVOKE manager FROM joe;
  26.  
    postgres=# REVOKE senior_manager FROM manager;
  27.  
    postgres=# DROP USER manager;
  28.  
    示例:撤销上述授予的权限,并清理角色和用户。
  29.  
    postgres=# REVOKE ALL PRIVILEGES ON tpcds.reason FROM joe;
  30.  
    postgres=# REVOKE ALL PRIVILEGES ON SCHEMA tpcds FROM joe;
  31.  
    postgres=# REVOKE ALL ON TABLESPACE tpcds_tbspc FROM joe;
  32.  
    postgres=# DROP TABLESPACE tpcds_tbspc;
  33.  
    postgres=# REVOKE USAGE,CREATE ON SCHEMA tpcds FROM tpcds_manager;
  34.  
    postgres=# DROP ROLE tpcds_manager;
  35.  
    postgres=# DROP ROLE senior_manager;
  36.  
    postgres=# DROP USER joe CASCADE;
学新通

示例

  1.  
    # 创建角色
  2.  
    # 创建角色role1,授予role1创建数据库的权限
  3.  
    openGauss=# CREATE ROLE role1 WITH CREATEDB password 'openGauss@2021';
  4.  
     
  5.  
    # 修改角色role1,授予角色role1监控管理员的权限,同时取消创建数据库的权限
  6.  
    openGauss=# ALTER ROLE role1 WITH MONADMIN NOCREATEDB;
  7.  
     
  8.  
    # 创建名为joe的用户,并将sysadmin权限授权给他,授权成功后,用户joe会拥有sysadmin的所有权限。
  9.  
    openGauss=# CREATE USER joe PASSWORD 'Gauss@123456';
  10.  
    openGauss=# GRANT ALL PRIVILEGES TO joe;
  11.  
     
  12.  
    # 撤销joe用户的sysadmin权限
  13.  
    openGauss=# REVOKE ALL PRIVILEGES FROM joe;
  14.  
     
  15.  
    # 将用户user1的权限授权给用户user3
  16.  
    openGauss=# grant user1 to user3;
  17.  
     
  18.  
    # 再回收用户user3的权限
  19.  
    openGauss=# revoke user1 from user3;
  20.  
     
  21.  
    # 查询表权限
  22.  
    GRANT SELECT ON student TO PUBLIC;
  23.  
    GRANT SELECT ON student TO lisi;
  24.  
     
  25.  
    # 要使特定用户能够创建和访问MOT(DDL、DML、SELECT),以下语句只执行一次:
  26.  
    GRANT USAGE ON FOREIGN SERVER mot_server TO <user>;
学新通

*
*
*

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggggcj
系列文章
更多 icon
同类精品
更多 icon
继续加载