基础知识
对象的分类
数据库的表、索引、视图、缺省值、规则、触发器等等,都称为数据库对象,对象分为如下两类:
- 模式(SCHEMA)对象:可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。
- 非模式对象:其他的数据库对象,如数据库、表空间、用户。
对象访问权限概述
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
