oracle grant 权限

本文深入解析SQL中的CONNECT、RESOURCE、DBA等角色及其权限,覆盖从基本创建会话到高级操作如建表、建索引等,为数据库管理与开发提供全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

grant connect,resource,dba to user;

CONNECT角色: --是授予最终用户的典型权利,最基本的
CREATE SESSION --建立会话
RESOURCE角色: --是授予开发人员的
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
CREATE OPERATOR --创建操作者
CREATE INDEXTYPE --创建索引类型
CREATE TABLE --创建表

DBA角色: --是授予数据库维护人员的

OLAP_DBA
SCHEDULER_ADMIN
DELETE_CATALOG_ROLE
EXECUTE_CATALOG_ROLE
WM_ADMIN_ROLE
EXP_FULL_DATABASE
SELECT_CATALOG_ROLE
JAVA_DEPLOY
GATHER_SYSTEM_STATISTICS
JAVA_ADMIN
XDBADMIN
IMP_FULL_DATABASE
XDBWEBSERVICES

转载于:https://www.cnblogs.com/lizikang2013/p/4237547.html

<think>我收到了用户的查询,是关于在Oracle数据库中收回已授予的权限的问题。用户明确问如何使用REVOKE命令撤销GRANT权限,这属于DCL权限管理的范围。根据引用的信息,我需要整理REVOKE的使用方法。参考[1]描述了回收权限的基础语法,包括回收系统权限和表对象权限的示例。[2]提供了更多上下文,解释了权限类型如CREATESESSION或DBA,以及表级权限的回收方式。[3]补充了对象权限的细节,说明序列只能有SELECT和ALTER权限,这会影响REVOKE的操作限制。用户的焦点是REVOKE语法应用。我将结构化回答:从基本语法开始,解释系统权限和对象权限的撤销区别。要包括示例场景:回收单个用户或所有用户的权限。还需强调注意事项,如撤销"WITHGRANTOPTION"的复杂性。在组织内容时,确保清晰步骤:系统权限回收、表对象权限回收、可选子句的使用。最后添加相关问题,引导学习,如级联回收或查看权限的方法。</think> 在 Oracle 数据库中,您可以使用 `REVOKE` 命令来撤销(收回)之前通过 `GRANT` 授予的权限。操作步骤如下: ### 📌 一、撤销系统权限 ```sql REVOKE <系统权限名1>, <系统权限名2>, ... FROM <用户名1>, <用户名2>, ...; ``` **示例**: ```sql -- 撤销用户的 DBA 和 CREATE TABLE 权限 REVOKE DBA, CREATE TABLE FROM user1, user2; ``` > **说明**: > 常见系统权限包括 `CREATE SESSION`(连接数据库)、`CREATE TABLE`(创建表)、`DBA`(管理员权限)等[^2]。 --- ### 📌 二、撤销表对象权限 ```sql REVOKE <权限名> ON [<方案名>.]<对象名> FROM <用户名1>, <用户名2>, ... [CASCADE CONSTRAINTS]; ``` **权限类型**: | 权限名 | 作用 | |-----------|---------------| | SELECT | 查询数据 | | INSERT | 插入数据 | | UPDATE | 修改数据 | | DELETE | 删除数据 | | ALTER | 修改表结构 | | ALL | 所有权限 | **示例**: ```sql -- 撤销 user1 对 emp 表的 UPDATE 和 DELETE 权限 REVOKE UPDATE, DELETE ON scott.emp FROM user1; ``` > **注意**: > - `CASCADE CONSTRAINTS` 用于级联撤销引用完整性约束(如外键)[^1]。 > - 对象可以是表、视图、序列等(序列仅支持 `SELECT` 和 `ALTER` 权限[^3])。 --- ### 🛠 三、撤销 `WITH GRANT OPTION` 传递的权限权限通过 `GRANT ... WITH GRANT OPTION` 传递,需级联撤销: ```sql REVOKE <权限名> ON <对象名> FROM <用户名> CASCADE CONSTRAINTS; ``` > **重点**: > 此操作会收回该用户及其通过 `WITH GRANT OPTION` 授权的所有下游用户的权限[^1]。 --- ### 📊 四、操作示例 **场景**:撤销用户 `dev_user` 对表 `orders` 的所有权限及其传递的权限: ```sql REVOKE ALL ON hr.orders FROM dev_user CASCADE CONSTRAINTS; ``` 🔍 **验证操作**: 可通过查询数据字典确认权限状态: ```sql SELECT * FROM USER_TAB_PRIVS_MADE; -- 查看已授予的权限 SELECT * FROM USER_TAB_PRIVS_RECD; -- 查看已接收的权限 ``` 💎 **核心注意事项**: 1. 执行 `REVOKE` 需要拥有 `GRANT ANY PRIVILEGE` 或对象所有者权限[^2]; 2. 撤销系统权限时,若用户已存在对象(如表),需手动清理; 3. 级联撤销 (`CASCADE`) 会影响依赖该权限的所有用户和约束[^3]。 --- 🔍 **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值