Oracle 权限管理

系统权限
系统权限是指在系统级控制数据库的存取和使用的机制,
即执行某种SQL语句的能力。 例如,启动、停止数据库,修改数据库参数,
连接到数据库,以及创建、删除、更改模式对 象(如表、视图、索引、过程等)等权限。 
系统权限是针对用户而设置的,用户必须被授予相应的系统权限才可以连接到数据库中进行 相应的操作。

查看所有的系统权限
SELECT * FROM SYSTEM_PRIVILEGE_MAP;    


系统权限包括 数据库维护权限
ALTER DATABASE            修改数据库的结构
ALTER SYSTEM            修改数据库系统的初始化参数
DROP PUBULIC SYNONYM    删除公共同义词
CREATE PUBLIC SYSNONYM    创建公共同义词
CREATE PROFILE            创建资源配置文件
ALTER PROFILE            更改资源配置文件
DROP PROFILE            删除资源配置文件
CREATE ROLE                创建角色
ALTER ROLE                修改角色
DROP ROLE                删除角色
CREATE TABLESPACE        创建表空间
ALTER TABLESPACE        修改表空间
DROP TABLESPACE            删除表空间
MANAGE TABLESPACE        管理表空间
UNLMITED TABLESPACE        不受配额限制的使用表空间
CREATE SESSION            创建会话,允许用户连接到数据库
ALTER SESSION            修改用户会话
ALTER RESOURCE COST        更改配置文件中计算资源消耗的方式
RESTRICTED SESSION        在数据库处于受限会话模式下连接到数据
CREATE USER                创建用户
ALTER USER                更改用户
BECOME USER                当执行完全装入时,成为另一个用户
DROP USER                删除用户
SYSOPER                    启停数据库等


系统权限包括  数据库对象管理
create cluster            在自己的模式中创建聚簇
drop cluster            删除自己模式中的聚簇
create procedure        在自己的模式中创建存储过程
drop procedure            在自己的模式中删除存储过程
create database link    创建数据库连接权限,通过数据库连接允许用户存取远程的数据库。
drop datebase link        删除数据库的连接
create synonym            创建私有同义词
drop synonym            删除同义词
create sequence            创建开发者所需的序列
create trigger            创建触发器
drop trigger            删除触发器
create table            创建表
drop table                删除表
create view                创建视图
drop view                删除视图
create type                创建对象

系统权限中的数据对象管理权限加上ANY,表示可以在任何用户模式中进行操作。


系统权限的授予
GRANT <系统权限名称> TO {PUBLIC | <角色名> | <用户名>[,...N]} [WITH ADMIN OPTION]
WITH ADMIN OPTION表示指定用户可以将这些权限授予该其他的用户。


首先在"超级管理连接"下新建一个用户
用户名为:dongxx,密码为dongxinxing,默认表空间为users,临时表空间为temp
CREATE USER dongxx IDENTIFIED BY dongxinxing DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
提示:上面新建的用户还没有授予什么权限,如果我们执行连接操作的话,那么系统会提示错误。
这里首先给该用户授予会话的权限,暂时做连接。
GRANT CREATE SESSION TO dongxx; 
会话授予成功之后,连接成功:
现在授予该用户创建表和创建视图:
GRANT CREATE ANY TABLE,CREATE ANY VIEW    TO dongxx WITH ADMIN OPTION;
create table demo(id int);
创建表成功
如果我这里向创建的表中插入数据,是不能的,还没有授权插入数据。


系统权限的收回 
REVOKE <系统权限名>FROM {PUBLIC | <角色名> | <用户名>[,...N]}
revoke create any table from dongxx;


数据库对象权限
对象权限是指在对象级控制数据库的存取和使用的机制,即访问其他用户模式对象的能力。 
例如,用户可以存取哪个用户模式中的哪个对象,能对该对象进行查询、插入、更新操作等。

对象权限分类
SELECT:读取表,视图,序列中的行;
UPDATE:更新表,视图和序列中的行;
DELETE:删除表,视图中的数据;
INSERT:向表和视图中插入数据;
EXECUTE:执行类型,函数,包和过程;
READ:读取数据字典中的数据;
INDEX:生成索引;
REFRENCES:生成外键;
ALTER:修改表,序列,同义词中的结构。

对象权限的授予
GRANT {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}
ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}
[WITH GRANT OPTION]
GRANT SELECT,INSERT,UPDATE,DELETE ON demo TO dongxx;

对象权限的回收
REVOKE {<对象权限名> | ALL [PRIVILEGE] [(<>[,...N])]}
ON [用户方案名.]<对象权限名> TO {PUBLIC | <角色名>| <用户名>[,...N]}
[CASCADE CONSTRAINTS];


oracle中默认的角色
1. CONNECT角色
CONNECT角色是Oracle数据库中最基本的角色之一,它允许用户连接数据库并创建表、序列、视图和同义词等对象。
此外,CONNECT角色还允许用户对自己拥有的对象进行SELECT、INSERT和UPDATE操作。
2. RESOURCE角色
RESOURCE角色允许用户创建和管理更高级别的数据库对象,如索引、触发器和存储过程等。
RESOURCE角色还允许用户在自己拥有的表中执行SELECT、INSERT、UPDATE和DELETE操作。
3. DBA角色
DBA角色是Oracle数据库中权限最高的角色之一,拥有系统级别的所有权限,可以对数据库中的所有对象执行任何操作。
DBA角色允许用户管理数据库的安全性、备份和恢复、日志记录、性能调整等方面的任务。
4. EXP_FULL_DATABASE角色
EXP_FULL_DATABASE角色授予用户完全导出数据库的权限,包括数据、对象、索引、存储过程、触发器、视图等。
此外,EXP_FULL_DATABASE角色还允许用户创建和管理导出作业。
但是,这个角色最好只授予需要频繁导出数据库的用户,因为它允许用户访问和操作所有表和对象。
5. IMP_FULL_DATABASE角色
IMP_FULL_DATABASE角色授予用户完全导入数据库的权限,包括数据、对象、索引、存储过程、触发器、视图等。
此外,IMP_FULL_DATABASE角色还允许用户创建和管理导入作业。
但是,这个角色最好只授予需要频繁导入数据库的用户,因为它允许用户访问和操作所有表和对象。
 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值