基础知识

对象的分类

数据库的表、索引、视图、缺省值、规则、触发器等等,都称为数据库对象,对象分为如下两类:

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

对象访问权限概述

1、对象都会有所有者,所有者一般是对象的创建者,所有者也可以被改变

2、初始状态下,只有所有者(或者超级用户)能够对该对象执行任何操作。

3、其他用户和角色要使用该对象,必须显式的为其授予访问该对象的相关权限

定义访问权限

从授权访问各种对象的语法大纲可以看出,不同的对象类型支持的权限类型是有差异的。GRANT针对数据库的授权。

针对数据库的授权

针对模式授权

user01 已经有了select权限但是好还是不能读取,有了模式给的USAGE 才可以读取

  • 这个USAGE 就是大门权限
grant USAGE on SCHEMA s01 to user01;

可以看见USER01具有访问权限了

针对表空间授权

针对列的授权

针对序列的授权

针对函数的授权

移除访问权限

这三个是特殊权限,授予不了也不能移除

drop
grant
revoke

针对模式的授权

移除模式public的创建权限,来自所有

reoveke create  on schema public from PUBLIC ;

实验

  • 创建模式
  • 创建模式中的表
  • 查看表
create schema s01;
create table s01.student as select * from exam.student ;
\dp+ s01.student;

user01用户没有权限读取这个表,进行授权

可以看见 user01用户没有权限

需要给模式的USAGE才能访问大门

user01 已经有了select权限但是好还是不能读取,

基于模式s01 使用权到user01用户

grant USAGE on SCHEMA s01 to user01;

可以看见USER01具有访问权限了

移除public模块下的创建权限

public 默认所有人都可以有权限,需要删掉创建权限

reoveke create  on schema public from PUBLIC ;

考试的时候

先给让模式给用户使用权限,然后再指定模式的某个表的读取权限给用户

授予转权限

设置表的属性模块为schema01

alter table s1 set SCHEMA schema01;

也是一样的

导出csv

导出的时候后面记得加csv

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐