GBase 8s
运维管理
文章

数据库权限相关的分解

GBase社区管理员
发表于2023-05-11 17:51:2276次浏览0个评论

数据库层面的三种权限:
Connect
      可以查询和修改数据
      如果是某个数据库对象的拥有者,则可以修改该数据库对象
Resource
      可以执行“Connect权限可执行的所有操作”
      可以创建数据表、索引、UDR等
DBA
      可以执行“Resource权限可执行的所有操作”
      可以将数据库层面的权限授予另一个用户
      可以创建任意数据库对象
      可以将一个角色授予一个用户或另一个角色

GRANT RESOURCE TO joe;
GRANT CONNECT TO PUBLIC;
GRANT DBA TO renee;
REVOKE CONNECT FROM ted;

表和列层面的权限:

GRANT UPDATE ON orders TO john WITH GRANT OPTION;
GRANT ALL ON sales TO PUBLIC;
GRANT INSERT, DELETE ON inventory TO mike AS kate;
GRANT SELECT (company, addr) ON customer TO PUBLIC;
REVOKE DELETE, UPDATE ON customer FROM ted;

Routine层面的权限:
GRANT EXECUTE ON square ( x INT ) TO laura;
REVOKE EXECUTE ON cancel_orders FROM dan;

DataBlade层面的权限:
GRANT EXTEND TO chris;
REVOKE EXTEND FROM chris;

 

角色的管理和控制:

将若干个权限(privilege)组合在一起形成一个角色(role)
示例:
CREATE ROLE mkting;
GRANT INSERT, UPDATE, DELETE ON orders TO mkting;
GRANT mkting TO jon, lauren, nicole;
一个用户在缺省情况下使用他的缺省角色(default role)。DBA可通过以下语句将缺省角色授予某个用户:
GRANT ROLE slsadmin TO mark AS DEFAULT;
GRANT DEFAULT ROLE slsadmin TO mark;
一个用户可通过以下语句将自己设置为某个角色:
SET ROLE slsadmin;
SET ROLE DEFAULT;
缺省角色可被授予给 PUBLIC:
GRANT DEFAULT ROLE slsadmin to PUBLIC;
可使用如下语句收回缺省角色:
REVOKE DEFAULT ROLE FROM jon;

评论已关闭