Oracle-用户创建与权限分配

1、用户与模式的关系    2、创建与管理用户   3、用户权限管理   4、角色管理   5、资源配置

1、用户与模式的关系:

Oracle用户=账户(帐号+密码),而模式也被称为方案,是用户拥有数据库对象的集合。在Oracle中,用户与模式一一对应,并且名称相同。

Oracle用户账户验证的三种方法:(1)密码验证【用户登录时核实用户名密码的正确性】(2)外部验证【用户连接数据库时核实用户账户的有效性,并且确认用户已经完成了操作系统级别的验证,即强制计算机系统设置登录密码】(3)全局验证【用户在Oracle安全域区域中心服务器所提供的身份验证服务进行验证】

2.用户的创建与管理:

(1)创建:

一般dba(系统管理员)的权限才能使用

create user 用户名 identified by 密码 default 默认表空间 temporary tablespace 临时表空间

--创建一个密码为m123的用户TOM,默认表空间user,临时表空间temp
create user tom identified by m123 default tablespace users temporary tablespace temp;

(2)修改:

将创建用户中的语法create更改为alert

--修改tom的密码
alert user tom identified by m234;

(3)删除:

删除通过drop user 语句完成,删除用户以后,Oracle会从数据字典中删除用户、方案及其所有对象方案

drop user 用户名[cascade]

cascade:级联删除选项,如果用户包含数据库对象,则必须加cascade选项,此时连同该用户下的所拥有的对象一起删除

3、用户权限管理:

(1)权限分为系统权限(在系统级对数据库进行存取和使用的机制,比如用户能否连接到系统session权限,执行系统级DLL语句create、alert、drop等)和对象权限(某一用户对其他用户的表,视图,序列,存储过程,函数,包等的操作权限)

(2)常用的系统权限:create(session/table/view/public synonym同义词/procedure/trigger...)

(3)统计显示系统权限:

可以通过查询数据字典视图 system_privilege_map,可以显示所有系统权限

--统计系统权限
select count(*) from system_privilege_map;
--查看详细系统权限
select * from system_privilege_map order by name;

需要注意的是新创建的用户是没有任何权限的,需要给其授权grant(回收权限revoke)

(4)系统权限授权操作:

grant 权限 to 用户[with admin option];with admin option授权代理,即用户可以在得到权限后将权限授予其他用户

--给tom赋予登录、建表权限
grant create session,create table to tom [with admin option];

(5)系统权限回收:

revoke 权限 from 用户

--收回tom用户的create session 系统权限
revoke create session from tom;

此时如果tom再次登录,就会出现错误。

系统权限级联问题:

system授权用户tom create session权限,并且允许tom授予其他用户此权限,当tom授予ken用户create session权限后,system收回tom用户的create session权限时,tom用户不能登录,但是ken用户仍然可以登录。即,系统权限在级联收回时不会被回收。

(6)常用对象权限(用户访问其他用户方案对象时需要)

select(查询表数据)alter(修改表结构)delete(删除表数据)update(修改表数据)insert(添加表数据)index(索引)references(引用)execute(执行)【注意alter和update的不同】

(7)对象权限授权:

grant 权限(all授予所有权限) on 表 to用户[with hierarchy option];

with hierarchy option 授权代理

--授权tom查询scott用户下emp表信息
grant select on scott.emp to tom;

--授权tom修改scott用户下emp表结构的权限
grant alter on scott.emp to tom;

--授权tom用户execute权限,使其可以执行包dbms_transaction
--conn system/admin
grant execute on dbms_transation to tom;

(8)对象权限收回:

revoke 权限(all所有权限) on 表 from 用户;

--收回tom在emp表上的select权限
revoke select on scott.emp from tom;

(9)对象权限字段级控制:

即某一用户只拥有某一字段的控制权

--希望tom只可以修改scott用户下emp表的job和sal字段
grant update(job,sal) on scott.emp to tom;

(10)对象权限的级联收回:

对象权限的级联收回与系统权限恰恰相反,一旦用户权限被收回,该用户授予其他用户的权限也会被收回。

4、角色管理:

 

feihu分享到:

          

You may also like...

Scroll Up