2024年3月15日发(作者:)

oracle如何进行授权

3.6.1、系统权限

系统权限(System Privilege)向用户提供了执行某一种或某一类型的数据库操作的能力,有近100种系统

权限。

系统权限不是控制对指定数据库对象的访问,而是用来许可对各种特性的访问,或许可Oracle数据库中的

特定任务。

以下是常用的系统权限

create cluster 在自己模式中创建聚簇 drop trigger 删除触发器

drop cluster 删除自己模式中的聚簇 create table 创建表

create procedure创建存储过程、函数和包 alter any table 修改表

drop procedure 删除存储过程、函数和包 drop any table 删除表

create database link 创建数据库链路权限,通过数据create view 创建视图

库链路允许用户存取过程的数据库 drop view 删除视图

drop database link 删除数据库链路 create type 创建对象类型

drop any type 删除对象类型

create sequence 创建序列

create procedure

创建存储过程、程序包和函数

drop any sequence 删除序列

create trigger 创建触发器 drop any procedure 删除

过程、程序包和函数

授权格式:

GRANT PRIVILEGE_NAME TO USER_NAME

收回权限格式

REVOKE PRIVILEGE_NAME FROM USER_NAME

例:grant create view to hr;

3.6.2、对象权限

对象权限控制用户是否能在特定数据库对象(如表、视图或存储过程)上执行特定类型的操作。

常用对象权限如下表:

对象权限

SELECT

UPDATE

DELETE

INSERT

EXECUTE

READ

INDEX

适用对象

表、视图、序列

表和视图

允许的操作

查询

删除行

表、视图或其中的字段 更新

表、视图或其中的字段 插入行

存储过程,存储函数与程执行PL/SQL存储对象

序包

目录

读取目录

在表上建立索引

在其他表中创建的外键能引用表或表

中的字段

修改表或序列的结构

REFERENCES

表或其中字段

ALTER

表或序列

授予具体的对象权限格式:

GRANT PRIVILEGE_NAME ON 对象 TO USER_NAME

例:grant select,update,delete on jobs to test; --授予用户test在表jobs 上执行select,update,delete操作的权限

授予对象的列权限的格式:

GRANT PRIVILEGE_NAME(COL_NAME ) ON 对象 TO USER_NAME

例:

grant update(job_title,min_salary) on jobs to test;

授予用户test在表jobs的字段

job_title、min_salary

的update的权限

收回权限格式

REVOKE PRIVILEGE_NAME FROM USER_NAME