数据库的表、索引、视图等,在数据库中的一切都可以称为数据库对象。

对象分为以下两类

  1. 模式(SCHEMA)对象:可视为一个表的集合,可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。
  2. 非模式对象:其他的数据库对象。如数据库、表空间、用户、权限。

查看当前用户在数据库中拥有的权限

\l

 

查看用户在模式中拥有的权限

\dn+

 

查看用户对模式对象(以表为例)拥有的权限

\dp

 

对用户授予对表有插入权限并为其授予转授权

grant 权限 on 模式.表名 to 授权用户 with grant option;

 

查看表的所有者

\dt+ 表名

 

改变对象(表)的所有者

alter table 模式.表名 owner to 用户名;

 

拥有者在对象上的特殊权限不能被授予或撤销

DROPGRANTREVOKE等特殊权限总是隐式地属于拥有者,不能直接查询到这些权限信息,也不能被授予或撤销。

所有者可以撤销他自己在表中普通权限

撤销用户在表上的所有普通权限

revoke ALL on 模式.表 from 用户;

 

重新对用户授予查询表的权限

grant 权限 on 模式.表 to 用户;

然后重新查询表的权限

 

授权用户访问库的权限

 grant CONNECT on DATABASE 库名 to 用户;

查看数据库的权限列表

 

授权用户访问模式的权限

grant USAGE on SCHEMA 模式名 to 用户名;

\dn+ 模式       #查看模式的权限列表

 

授予用户访问表的权限

grant 权限 on TABLE 模式.表名 to 用户名;

\dp+ 表名

 

上图显示授予了查询权限给user03用户

收回public角色在数据库和public模式中的默认权限

在KES V8R3中public角色默认拥有登录所有数据库能在public模式中创建对象的权限。

测试,创建user04用户,然后直接登录数据库test

 

 

结论:用户默认能登陆test数据库和在public模式中创建对象

注意:所有用户默认属于public角色。

查看和验证public角色拥有的默认权限

查看public角色在某个数据库的权限

\l 数据库名

 

查看public角色在public模式中的权限

 \dn+ 模式名

 

收回public角色在test数据库的默认权限

revoke ALL on DATABASE 数据库名 from PUBLIC ;

 

结论:收回默认权限后,已经不能登录数据库

收回public角色在public模式中的默认权限

revoke ALL on SCHEMA 模式名 from 角色所属模式名 ;

 

验证:收回权限后已经无法在public模式中创建表了。

权限描述符概述

详解“user01=ar*/SYSTEM

 

Logo

一站式 AI 云服务平台

更多推荐