金仓数据库对象访问权限的管理
基础知识
对象的分类
数据库的表、索引、视图、缺省值、规则、触发器等等,都称为数据库对象,对象分为如下两类:
- 模式(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