oracle 角色权限管理,Oracle权限和角色管理概述

本文介绍了Oracle数据库中的两种主要权限类型:system privileges 和 object privileges,并详细解释了如何为用户分配这些权限,包括常用系统权限如CREATE SESSION及对象权限如SELECT ON TABLE等。此外,还介绍了角色的概念及其管理方式。

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

Oracle的权限有两种:

system privileges:用户所做的操作会对数据字典造成影响;

object privileges:用户所做的操作会对数据造成影响;

System Privilege:

大概有200多个系统权限,常用的系统权限包括:

CREATE SESSION

RESTRICTED SESSION:当数据库处于restricted状态的时候,这些用户可以进入;

ALTER DATABASE

ALTER SYSTEM

CREATE TABLESPACE

CREATE TABLE

GRANT ANY OBJECT PRIVILEGE

CREATE ANY TABLE

DROP ANY TABLE

INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE

SELECT ANY TABLE

GRANTprivilege1,privilege2 TO username;

grantcreate table to scott with admin option;

connectscott/tiger;

grantcreate table to sj;

用户scott只能在自己的schema中建立表

用户sj也只能在自己的schema中建立表

如果将scott的该权限收获,sj的权限将依旧存在;

--查看用户所拥有的权限,并且看其是否可以继续授权

select * fromdba_sys_privs where grantee='SJ';

授予any table权限的,任然不能操作SYS表空间中的表;

Object Privileges

可以将select,update,delete,insert,alter,execute等DML操作权限赋给用户,可以针对表,也可以针对表中的某些列,例:

grantselect  on scott.emp to sj;

grant update (order_status) on scott.orders to sj;--在列这个级别分配会造出严重的系统负担;

grant allon scott.regions to sj;

Object Privileges 权限可以级联收回

revoke select  on scott.empfrom sj;-----------通过sj再赋予其他用户的权限在此语句执行后都将收回;

创建和管理角色

--查看用户所拥有的角色,并查看是否可以继续授权

select * fromdba_role_privs where grantee='SJ';

A role isbundle of system and/or object privileges that can be granted and revoked as aunit, and having been granted  can betemporarily activated or deactivated with in a session;

CREATE ROLE rolename;

角色的名字不能和现有用户的用户名重复,也不能和现有的角色名重复;

createrole hr_junior;

grantcreate session to hr_junior;

grantselect on hr.regions to hr_junior

createrole hr_senior;

granthr_junior to hr_senior with admin option;

grantupdate on hr.regions to hr_senior;

createrole hr_manager;

granthr_senior to hr_manager with admin option;

grant allon hr.regions to hr_manager;

和system privileges权限的收回方式一样,role的收回也是不能级联进行的;

预先定义好的角色:

CONNECT:为了向后兼容,现在改为CREATE SESSION,可以创建表

RESOURCE:为了向后兼容,可以创建表或存储过程;并且有UNLIMITED TABLESACPE权限;

DBA:几乎具备所有的权限,但是不能启动和关闭数据库;

SELECT_CATALOG_ROLE:数据库初级管理员最好有这个,它能拥有许多object privileges的权限,但是没有system privileges的权限,也没有用户数据的权限,不能看到用户数据;

SCHEDULER_ADMIN:具有管理批量计划脚本的权限

there isalso a predefined role PUBLIC, which is always granted to every database useraccount;

例:grant select on hr.regions topublic;------通过执行这个语句,系统中的所有用户都可以获得对这个表的select权限;

--将一个用户的默认角色失效

ALTER UESR sj DEFAULT ROLE NONE;--当sj用户登录的时候,它没有任何可用的角色,甚至不能登录;

grant connect to sj --将登录角色赋给sj

alter user sj default role connect;---将登录角色作为sj的默认角色

SET ROLE rolename;

CTRATEROLE rolename IDENTIFIED USING procedure_name;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值