Oracle数据库的应用-用户的授权(下)

135 阅读2分钟

「这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战」。

6. 对象权限

所谓的对象指的是:表,视图,索引,同义词,存储过程,触发器,序列……

  • 不同的对象具有不同的对象权限
  • 对象的拥有者拥有所有权限
  • 对象的拥有者可以向外分配权限
对象权限视图序列过程
查询(select) 
插入(insert)  
更新(update)  
删除(delete)  
修改(alter)  
索引(index)   
关联(references)   
执行(execute)   

6.1 授予权限

sql格式:

GRANT 权限列表 ON 对象名 TO 用户名 [WITH GRANT OPTION]

例1,授予**郁金香**这个用户,向**学生表** **查询,插值,修改,删除**的权限:

GRANT **select ,insert,update,delete,execute** ****ON **t_student** TO yujinxiang;

例2,向数据库中所有用户分配权限:

GRANT select ON dept TO PUBLIC;

6.2 授予部分字段权限( insert,update

sql格式:
GRANT 权限名称 (字段列表)  ON 对象名 TO 用户名 [WITH GRANT OPTION]
例如,授予郁金香这个用户,修改学生表的学生姓名,学生年龄的权限:
GRANT update (stu_name,student_age)  ON t_student TO yujinxiang;

WITH GRANT OPTION  可在授于权限(对象)的同时,允许此用户将此权限授权给别的用户

6.3 查询已拥有权限

sql格式:
SELECT * FROM user_tab_privs_made  --查询授出去的对象权限(通常是属主自己查)
SELECT * FROM user_tab_privs_recd,SELECT * FROM user_tab_privs --查询当前用户拥有的对象权限

6.4 撤消授权

sql格式:

REVOKE 权限列表 ON 对象名 FROM 用户名;

例1,撤消授予**郁金香**这个用户,向**学生表** **查询,插值,修改,删除**的权限:

REVOKE **select ,insert,update,delete,execute** ON **t_student** FROM yujinxiang;

例2,撤消授予**郁金香**这个用户,**修改** **学生表****学生姓名,学生年龄**的权限:

REVOKE **update** ON **t_student** FROM **yujinxiang**;

DDL,DML,DQL,DCL

DDL(Data Definition Language):

数据定义语言,用于创建对象 如:CREATE TABLE ,ALTER TABLE,DROP TABLE,CREATE VIEW……

DML (Data Manipulation Language):

数据操纵语言,如:INSERT INTO,UPDATE,DELETE……

DQL (Data Query Language):

数据查询语言,如:SELECT……

DCL(Data Control Language):

数据控制语言,控制特定用户对数据表、存储过程、函数等数据库对象的控制权,由 GRANT 和 REVOKE 两个指令组成。