授予与撤销
向被授权者授予有效特权很容易,并且可以一遍又一遍地重复,即使特权已被授予。如果您使用了具有有效权限的正确语法,则不会引发错误。
另一方面,撤销用户的有效权限是不同的,而且相当严格,如果该权限从未授予用户,则会失败,系统权限为ORA -01952,对象权限为 ORA-01927 。
实践中的另一个区别是,我们会在用户需要时给予很多,但我们很少会撤销。
在这篇文章中,我们将看到一些正式的授权模式,它们会提醒我们正确有效地执行此操作。
授予系统权限
无论何时创建用户,都可能需要授予系统权限。
1. 授予单一受赠人单一特权
我们授予用户系统权限。这是一对一的类型,最简单的GRANT语法模式。
SQL> grant create procedure to hr;
Grant succeeded.
2. 将单一权限授予多个受赠者
我们授予某些用户系统权限。这是一对多类型。
SQL> grant create procedure to hr, oe, sh;
Grant succeeded.
3. 向单个受赠者授予多个权限
我们授予用户一些系统权限。这是多对一的类型。
SQL> grant create procedure, create table, create view to hr;
Grant succeeded.
4. 向单一受赠者授予混合特权
我们甚至可以在系统权限列表中混合一个角色。
SQL> grant create procedure, create table, create view, connect to hr;
Grant succeeded.
在此示例中,CONNECT是一个角色。
5. 向多个受赠者授予混合特权
我们可以在单个语句中看到多个特权产品多个用户。这是多对多类型。
SQL> grant create procedure, create table, create view, connect to hr, oe, sh;
Grant succeeded.
如果他们是同一类型的用户,那么一次授予权限是非常有效的方法。
授予对象特权
适用于授予系统特权的规则也适用于授予对象特权。但是,我们在GRANT语句中有一个额外的ON对象子句。
SQL> grant select, insert, update, delete on hr.employees to oe, sh, pm;
Grant succeeded.
如果授予者不是对象的所有者,则对象名称应该是完全限定的。
我们可以授予多个对象的对象权限吗?
不,我们不能。目标对象不能成倍增加。让我们看看一个不正确的说法。
SQL> grant select, insert, update, delete on hr.employees, hr.countries to oe, sh, pm;
grant select, insert, update, delete on hr.employees, hr.countries to oe, sh, pm
*
ERROR at line 1:
ORA-00990: missing or invalid privilege
这里我们在一个语句中授予了两个表,但最终我们看到了ORA-00990,这意味着授予对象权限时不能接受多个对象。
原文标题:Grant Privilege Correctly
原文作者:Ed Chen
原文链接:https://logic.edchen.org/grant-privilege-correctly/
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
697次阅读
2025-04-18 14:18:38
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
635次阅读
2025-04-15 17:24:06
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
547次阅读
2025-04-20 10:07:02
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
494次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
490次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
481次阅读
2025-04-22 00:13:51
一页概览:Oracle GoldenGate
甲骨文云技术
470次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
418次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
372次阅读
2025-04-15 14:48:05
OR+DBLINK的关联SQL优化思路
布衣
358次阅读
2025-05-05 19:28:36