关于Oracle数据库的权限管理

权限管理是Oracle实现安全管理的一部分。通过授予不同用户的系统权限与对象权限,可以控制用户对 系统功能的数据库对象的操作 oracle权限可分为三种:系统权限,对象权限,角色权限

(1)、系统权限: 是指在系统级控制数据库的存取和使用的机制,即执行某种SQL语句的能力。例如启动/停止数据库,修 改数据库参数,连接数据库等权限。-----系统权限是针对于用户设置的,用户必须被授予相应的系统权 限,才能连接到数据库中进行想要的操作。

ps: 系统权限很多,此处说一下常见的权限,其余的自行百度

CREATE SESSION------连接数据库

CREATE TABLESPACE -----创建表空间

ALTER TABLESPACE ----修改表空间

DROP TABLESPACE -----删除表空间

CREATE USER ----- 创建用户

DROP USER ----- 修改用户

CREATE TABLE ----- 创建表

语句: grant 系统权限1,系统权限2 ... to 用户 --- 赋予

            revoke 系统权限1,系统全选2 ... from 用户 --- 收回

(2)、对象权限: 是指用户对数据库对象的操作权限。数据库对象包括表,视图,序列和存储过程等。Oracle的对象权限 包括ALTER【更改】,DELETE【删除】,EXECUTE【执行】,INDEX【索引】,INSERT【添加】, SELECT【查询】和UPDATE【刷新】。这些对象权限适用于不同的对象。

--- 表权限【用于赋予对其他用户【不同表空间下的】表操作的权限】

grant 权限1,权限2 on 用户B.表名 to 用户A;--- 赋予用户A户用于对于用户Bxxx表的xxx权限 revoke 权限1,权限2 on 用户B.表名 from 用户A; --- 收回用户A用于对于用户Bxxx表的xxx权限 

 --- 针对所有表 :针对所有用户,所有表的

grant 权限1,权限2 any table to 用户名; 赋予 xxx 用户对于任意表xxx权限 revoke 权限1,权限2 any table from 用户; -- 收回 xxx 用户对于任意表xxx权限

--- 表空间权限: 新建的用户针对自己所属表空间的对象默认是无权操作的,想要操作就要使用下列指令赋 予其对于自己所属表空间对象的操作权限

grant unlimited tablespace to 用户名; --- 给用户授予全部的表空间的权限                              revoke unlimited tablespace from 用户名; --- 收回户授予全部的表空间的权限

(3)、角色权限: 角色是可以授予用户的相关权限的组,该方法使权限的授予,撤回更加容易管理 

常用角色【内置角色】:

connect ----- 登陆权限                                                                                                                    resource ----- 开发人员权限                                                                                                          dba ----- 管理员权限[全部权限]                                                                                                        语法: grant 角色名称1,角色名称2 to 用户;

(4)、权限传递 ps:这个用于给其他账户赋权的,只有允许的传递的权限才可以赋予其他账户,只有系统权限和对象权 限可以设置权限传递

权限传递有两种方式with admin option 和 with grant option,这两种方式的特点是 with admin option: 用户A可以将拥有权限赋予用户B,如果用户A的该权限被收回了,用户B是不会受到 影响,该方式用于系统权限 with grant option:用户A可以将拥有权限赋予用户B,如果用户A的该权限被收回了,用户B也会被收回, 该方式用于对象权限

with admin option:

ps:用户A可以将拥有权限赋予用户B,如果用户A的该权限被收回了,用户B是不会受到影响,该方式 用于系统权限

 1、新建两个用户                                                                                                                        create user tim1 identified by "tim1" default tablespace test_ts; create user tim2 identified by "tim2" default tablespace test_ts;                                                                                                     2、system用户赋予权限create session 给tim1用户                                                                           grant create session to tim1 with admin option;                                                                                 3、切换用户至tim1,然后tim1用户赋予权限create session 给tim2用户;                                         grant create session to tim2 ;                                                                                                             4、此时tim1和tim2都可以登录,然后system用户回收tim1的create session权限,tim1肯定不能登 录,但是tim2还是可以登录的。                                                                                                   revoke create session from tim1;

with grant option:

ps:用户A可以将拥有权限赋予用户B,如果用户A的该权限被收回了,用户B也会被收回,该方式用于 对象权限

1、scott用户赋予select权限给tim1                                                                                                      grant select on scott.emp to tim1 with grant option;                                                                    2、切换用户至tim1,然后tim1用户赋予权限给tim2用户;                                                                  grant select on scott.emp to tim2;                                                                                                3、scott用户回收tim1用户的select权限,tim1没有对scott.emp查询的权限,tim2用户也会消失掉对 scott.emp表的查询权限                                                                                                                        revoke select on scott.emp from tim1;

(5)、角色定义 角色在oracle中是一组权限的结合体,角色中可以包含很多权限。当把角色赋予用户时,用户就可以具 有角色内的所有权限。Oracle中角色分为两类

系统预定义角色

connect ----- 登陆权限                                                                                                                        resource ----- 开发人员权限                                                                                                                dba ----- 管理员权限

管理员自建角色

1、创建角色语法:create role 角色名;                                                                                          2、给角色授权:grant 权限 to 角色名;                                                                                           ps:角色与角色之间也可以互相授权。例如:grant resource,dba to r1                                       3、把权限从角色中移除:revoke 权限 from 角色名;                                                                 4、删除角色:drop role 角色名;

(6)、profile口令文件 

ps:对账户进行高级管理【有效期,密码重复次数...】

账户锁定

create profile 口令名称      limit 参数       

下面这些limit的可选参数:                                                                                                    password_life_time (天/unlimited[无限]) ---- 有效天数                                                      password_grace_time (天) --- 宽限天数                                                                        failed_login_attempts 次数 --- 输入错误多少次                                                                password_lock_time (天); --- 锁定几天

赋予用户口令

alter user 用户名 profile 口令;

用户解锁

alter user 用户名 account unlock;

用户锁定

alter user 用户名 account lock;

删除口令

drop profile  口令名称  cascade;

修改口令

alter profile 口令名 limit 口令限制代码;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值