Oracle权限管理

系统权限

什么是系统权限

使用户可以在数据库中执行特定的操作
如:创建索引,表,会话,表空间

授予系统权限

grant {system_priv|role},{system_priv|role}..
to
{user|role|public}
[with admin option]

system_priv:指定要授予的系统权限
role:指定要授予的角色名
public:将系统权限授权给所有用户
with admin option:使被授权者进一步将此权限授予其他用户或角色
查看某个用户拥有哪些权限:
select * from dba_sys_privs where grantee='';

撤销系统权限

revoke {system_oriv|role}
from {user|role|public}

对象权限

什么是对象权限

使用户可以访问和操纵特定对象
如,对表的一些操作

授予对象权限

grant {obj_priv[(column_list)]},..|ALL[privileges]
on [schema.]object 
to {user|role|public},..
[with grant option]

--示例
grant update(1,列2) on 表名
to 用户名;

obj_priv:指出表授予谁
column_list:可以具体到某列的权限
all:将所有权限授予已被授予with grant option 的对象
on object:表示将要被授予权限的表
with admin option:使被授权者也用于对其他用户授权此功能的

撤销对象权限

revoke {obj_priv|role},..
on [schema.]object
from {user|role|public},..
--示例
revoke all on employee from 用户名;

系统权限与用户权限的撤销区别 with grand option:

系统:不会收回赋予后的
用户:会收回

管理角色

角色的优点

  • 通过角色Oracle提供简单且可控制的权限管理
  • 是授予用户或其他角色的相关权限的命名组
  • 意义在于减轻数据库中的权限管理

使用预定义角色

类别说明
connect需要连接上数据库的用户,特别是那些不需要创建表的用户,通常赋予该角色
resource更为可靠和正式的数据库用户可以赋予该角色,可以创建表,触发器,过程等
dba数据库管理员角色,拥有数据库的最高权限

数据库安全设计原则

  • 数据库用户权限授权按照最小分配原则
  • 不允许使用sys和system用户建立数据库应用对象
  • 禁止grant dba to user
  • 删除或锁定数据库测试用户scott
  • 修改可用用户的默认密码
  • 对查询用户只开放查询权限
  • 对新建用户初次登陆数据库强制修改密码
  • 开发环境,测试环境,生产环境中相同用户的权限的设置必须完全一致

总结

  • 权限分为系统权限和对象权限
    • 系统:使用户可以在数据访问中执行特定的操作
    • 对象:使用户可以访问和操作特定的(数据表)对象
  • 创建和撤销权限
  • 通过角色Oracle提供简单且可控制的权限管理
  • 数据库安全设计原则
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值