日期:2014-05-16  浏览次数:20687 次

Oracle(八)权限角色管理

?

管理Oracle权限,角色

?

?

当新创建一个用户的时候它什么权限都没有,就连基本的登录权限都没有

?

权限:系统权限,对象权限

?

?

系统权限是什么? 系统权限有哪些?

如何赋给系统权限?

对象权限一样这几个问题

?

角色为了解决权限的管理

?

系统回收权限不是级联回收

?

with admin option 系统权限传递

?

赋予对象权限

grant update ?on emp(salary) to otheruser

grant index on scott.emp to otheruser

?

授权with grant option 的话则改权限可以继续传递

授予角色不能有这个选项

?

对象权限的回收是级联回收的

?

revoke select on emp from theuser

?

?

?

?

角色

?

预定义角色

如connect,resource,dba

connect 的权限

alter session,create cluster

create dababase link,create session

create table,create view

create sequence?

resource的权限,隐藏了unlimited tablespace 系统权限

create cluster,creat indextype

create table ,create sequence

create type,create procedure

create trigger

DBA 的权限

具有所有的系统权限,及with admin option,

没有sysdba,sysoper(启动关闭数据库)

自定义角色 一般dba创建,如果普通用户自定义角色必须要create role权限,建立角色的时候可以指定验证方式

?

1 创建角色 create role 角色名 not identified;

2 创建角色(数据库验证)

??这种方式必须角色名,口令放在数据库。当激活该角色时,必须提供口令,创建角色的时候需要为其提供口令

create role 角色名 indentified by 密码

当创建角色,角色没任何权限,

grant create session to 角色名 [with admin option]

赋予角色

?

grant ?角色名 to 用户 [with admin option]

?

删除角色,dba执行,如果普通用户需要有drop any role系统权限

drop role?

?

显示所有角色

select * from dba_roles ;

显示角色具有的系统权限

select privilage,admin_option from role_sys_privs where role = ' 角色名' ;

显示角色具有的对象权限 dba_tab_privs?

?

精细访问控制

用户使用函数,策略实现更加细微的安全访问控制。如果使用精细访问控制,当客户段发出sql如select ,insert ,update...,Oracle会制动在sql语句后追加谓语(where ...)通过这样的可以使得不同的数据库户访问相同的表,返回不同的数据。

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?